diff --git a/language/control-structures/goto.xml b/language/control-structures/goto.xml index 4fbca3d76e..8771a2c9dd 100644 --- a/language/control-structures/goto.xml +++ b/language/control-structures/goto.xml @@ -1,41 +1,48 @@ - + goto - Что наихудшее может случиться, если используется goto? + Что наихудшее случится, если пользоваться оператором goto? + + + Изображение любезно предоставил сайт веб-комиксов xkcd + + - Изображение предоставлено xkcd - Оператор goto используется для перехода в - другую часть программы. Место, куда необходимо перейти указывается с помощью чувствительный к регистру метки, - за которой ставится двоеточие, после оператора goto - указывается желаемая метка для перехода. Оператор не - является неограниченным "goto". Целевая - метка должна находиться в том же файле, в том же контексте. Имеется в виду, что вы не можете ни перейти за - границы функции или метода, ни перейти внутрь одной из них. Вы также не можете - перейти внутрь любой циклической структуры или оператора switch. Но вы можете выйти - из них, и обычным применением оператора goto является - использование его вместо многоуровневых break. + Оператором goto пользуются для перехода к другой + части программы. Место для перехода обозначают + чувствительной к регистру меткой, за которой + ставят двоеточие, а инструкцию задают словом goto, + за которым идёт целевая метка. У перехода goto есть + ряд ограничений. Целевая метка будет работать, только если метку указали + в том же файле и контексте. То есть нельзя ни выйти из функции или метода, + ни перейти в них. Нельзя также перейти внутрь цикла или структуры switch, + но выйти получится. Оператор goto, например, + указывают вместо управляющей конструкци break с указателем + уровня прерывания. - Пример использования <literal>goto</literal> + Пример использования оператора <literal>goto</literal> ]]> @@ -49,18 +56,22 @@ Bar - Пример использования <literal>goto</literal> в цикле + Пример использования оператора <literal>goto</literal> в цикле ]]> @@ -78,13 +89,15 @@ j hit 17 ]]>