Инструкции выхода в Java
Как видно из названия, инструкции выхода позволяют выходить из циклов, методов и даже программ в целом.
Первая из них — инструкция continue. Она может быть безымянной и именованной. Если continue безымянная, то она передает управление в конец тела текущего цикла. Если инструкция continue именная, то она передает управление в конец цикла, который обозначен меткой. Метка — это специальный идентификатор Java, который предназначен для именования блоков кода или указания места, к которому возможен переход. Метка используется в программе так: пишется ее имя и двоеточие, а чтобы на нее сослаться, надо лишь написать ее имя.
Приведем тексты двух программ, первая из которых использует безымянную инструкцию continue, а вторая — именную (листинги 3.10 и 3.11).
Листинг 3.10.
Пример использования безымянной инструкции continue
public class Example { public static void main(String[] args) { int m, l; for (l = 0, m = 10; l < m; l++, m--) { if (l == 3) // Если l = 3, то выполнение цикла прекратится continue; System.out.print("*"); } } }
Листинг 3.11
Пример использования именной инструкции continue
public class Example { public static void main(String[] args) { one: //Метка one: К концу какого цикла передается выполнение for (int i = 0; i < 5; i++) { for (int j = 4; j > -1; j--) { if (i > j) { System.out.println(); continue one; //Управление к концу первого цикла (к метке) } System.out.print("*"); } System.out.println(); } } }
В результате выполнения первой программы на экран выведется не 5 звездочек, а 4.
Выполнение второй программы приведет к отображению «лесенки» из звездочек.
Инструкция break тоже может быть именной и безымянной, но она не передает выполнение программы следующему циклу, а завершает выполнения циклов или конструкции выбора switch (переводит выполнение программы в зависимости от того, куда помещена).
Собственно для этого в конструкции switch используется инструкция break после каждого выполнения блоков case. Если не написать инструкцию в блоке кода, то все операторы case выполнялись бы с той строчки, где находится оператор case с верным значением переменной, до окончания блока switch (об этом мы уже говорили).
В листингах 3.12 и 3.13 приведены две программы, которые работают с оператором break (безымянным и именованным).
Листинг 3.12.
Пример использования безымянного оператора break
public class Example { public static void main(String[] args) { int i = 10, j = 5; do { if (j == 0) break; System.out.println(i / j); j--; } while (j > -5); } }
Листинг 3.13.
Пример использования именованного оператора break
public class Example { public static void main(String[] args) { errorl: // Метка errorl for (int i = -5; i < 5; i++) { if (i == 0) break errorl; System.out.println(10 / i); } System.out.printf("Error"); } }
Есть также инструкция return, которая существует для того, чтобы выходить из методов. В листинге 3.14 приведен пример использования инструкция return.
Листинг 3.14.
Пример использования инструкции return
public class Example { public static void main(String[] args) { int i; double d, pi = 3.14159265; for (i = 1; i <=100; i++) { if (i == 51) { System.out.println("Надоело!"); return; } d = i * pi; System.out.println("Длина окружности с диаметром " + i + " см равна " + d + "см"); } } }
Резюме
1. В Java существуют три цикла: for, do…while и while.
2. Существуют две конструкции выбора: i f.. .else и switch.
3. Существуют следующие конструкции выхода: return, break и continue, причем две последние бывают двух типов: именованная и неименованная.
Вопросы
1. Что такое цикл for?
2. Что такое цикл do…while?
3. Что такое цикл while?
4. Что такое конструкция выбора if …else?
5. Что такое конструкция выбора switch?
6. Что такое инструкции выхода и какие они бывают?
7. Что такое метка?
Контрольные упражнения
Напишите программу, которая использовала бы два цикла, множество инструкций выбора для того, чтобы подсчитать площадь прямоугольника со сторонами:
а равно от 1 до 100; b равно от 101 до 200.
не працюють силки на фото! Сервер не відповідає