1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-25 16:22:18 +01:00
Files
archived-doc-ru/language/control-structures/continue.xml
2023-09-03 01:02:10 +03:00

169 lines
4.7 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 16389a7b31069481d6c8c0705172bee5ef1ddf5f Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="control-structures.continue" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>continue</title>
<?phpdoc print-version-for="continue"?>
<simpara>
<literal>continue</literal> используется внутри циклических структур для
пропуска оставшейся части текущей итерации цикла и, при соблюдении условий,
начала следующей итерации.
</simpara>
<note>
<simpara>
В PHP оператор
<link linkend="control-structures.switch">switch</link> считается
циклическим и внутри него может использоваться <literal>continue</literal>.
Если <literal>continue</literal> не передано аргументов, то он ведёт себя
аналогично <literal>break</literal>, но выдаёт предупреждение о
возможной ошибке. Если <literal>switch</literal> расположен
внутри цикла, <literal>continue 2</literal> продолжит выполнение внешнего
цикла со следующей итерации.
</simpara>
</note>
<simpara>
<literal>continue</literal> принимает необязательный числовой аргумент,
который указывает на скольких уровнях вложенных циклов будет пропущена
оставшаяся часть итерации. Значением по умолчанию является <literal>1</literal>,
при которой пропускается оставшаяся часть текущего цикла.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$arr = ['ноль', 'один', 'два', 'три', 'четыре', 'пять', 'шесть'];
foreach ($arr as $key => $value) {
if (0 === ($key % 2)) { // пропуск чётных чисел
continue;
}
echo $value . "\n";
}
?>
]]>
</programlisting>
&examples.outputs;
<screen>
<![CDATA[
один
три
пять
]]>
</screen>
<programlisting role="php">
<![CDATA[
<?php
$i = 0;
while ($i++ < 5) {
echo "Внешний\n";
while (1) {
echo "Средний\n";
while (1) {
echo "Внутренний\n";
continue 3;
}
echo "Это никогда не выведется.\n";
}
echo "Это также не выведется.\n";
}
?>
]]>
</programlisting>
&examples.outputs;
<screen>
<![CDATA[
Внешний
Средний
Внутренний
Внешний
Средний
Внутренний
Внешний
Средний
Внутренний
Внешний
Средний
Внутренний
Внешний
Средний
Внутренний
]]>
</screen>
</informalexample>
</para>
<para>
Пропуск точки запятой после <literal>continue</literal> может привести
к путанице. Пример как не надо делать.
</para>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue
print "$i\n";
}
?>
]]>
</programlisting>
<para>
Ожидается, что результат будет такой:
</para>
<screen>
<![CDATA[
0
1
3
4
]]>
</screen>
</informalexample>
</para>
<para>
<table>
<title>Изменения, касающиеся оператора <literal>continue</literal></title>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.3.0</entry>
<entry>
<literal>continue</literal> внутри <literal>switch</literal>,
использующееся как замена <literal>break</literal>
для <literal>switch</literal> будет вызывать ошибку
уровня <constant>E_WARNING</constant>.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->