АБОБА. Справочник по программированию на Java Методическое пособие
Скачать 242.41 Kb.
|
Использование оператора continueИногда требуется, чтобы повторение цикла осуществлялось с более раннего оператора его тела. То есть на данной конкретной итерации может требоваться продолжить выполнение цикла без обработки остального кода в его теле. По сути, это означает переход в теле цикла к его окончанию. Для выполнения этого действия служит оператор continue. В циклах while и do-while оператор continue вызывает передачу управления непосредственно управляющему условному выражению цикла. В цикли for управление передается вначале итерационной части цикла for, а потом условному выражению. Во всех этих трех циклах любой промежуточный код пропускается. Ниже приведен пример программы, в которой оператор continue используется для вывода двух чисел в каждой строке. // Демонстрация применения оператора continue. class Continue { public static void main(String args[]) { for(int i=0; i<10; i++) { System.out.print(i + " "); if (i%2 == 0) continue; System.out.println(""); } } } В этом коде операция % служит для проверки четности значения переменной i. Если оно четное, выполнение цикл продолжается без перехода к новой строке. Программа генерирует следующий вывод: 0 1 2 3 4 5 6 7 8 9 Как и оператор break, оператор continue может содержать метку содержащего его цикла, который нужно продолжить. Ниже показан пример программы, в которой оператор continue применяется для вывода треугольной таблицы умножения чисел от 0 до 9. // Использование оператора continue с меткой. class ContinueLabel { public static void main(String args[]) { outer: for (int i=0; i<10; i++) { for(int j=0; j<10; j++) { if(j > i) { System.out.println(); continue outer; } System.out.print(" " + (i * j)); } } System.out.println(); } } В этом примере оператор continue прерывает цикл подсчета значений j и продолжает цикл со следующей итерации цикла подсчета i. Вывод этой программы имеет следующий вид: 0 0 1 0 2 4 0 3 6 9 0 4 8 12 16 0 5 10 15 20 25 0 6 12 18 24 30 36 0 7 14 21 28 35 42 49 0 8 16 24 32 40 48 56 64 0 9 18 27 36 45 54 63 72 81 Удачные применения оператора continue встречаются редко. Одна из причин состоит в том, что Java предлагает широкий выбор операторов цикла, удовлетворяющих требованиям большинства приложений. Однако в тех случаях, когда требуется более раннее начало новой итерации, оператор continue предоставляет структурированный метод выполнения этой задачи. Оператор returnПоследний из управляющих операторов – return. Его используют для выполнения явного возврата из метода. То есть он снова передает управление объекту, который вызвал данный метод. Как таковой этот оператор относится к операторам перехода. Оператор return можно использовать в любом месте метода для возврата управления тому объекту, который вызвал данный метод. Таким образом, оператор return немедленно прекращает выполнение метода, в котором он находится. Следующий пример иллюстрирует это. В данном случае оператор return приводит к возврату управления системе времени выполнения Java, поскольку именно она вызывает метод main(). // Демонстрация использования оператора return. class Return { public static void main(String args[]) { boolean t = true; System.out.println("До выполнения возврата."); if(t) return; // возврат к вызывающему объекту System.out.println("Этот оператор выполняться не будет."); } } Вывод этой программы имеет вид: До выполнения возврата. Как видите, заключительный оператор println() не выполняется. Сразу после выполнения оператора return программа возвращает управление вызывающему объекту. И последний нюанс: в приведенной программе использование оператора if(t) обязательно. Без него компилятор Java сигнализировал бы об ошибке “unreachable code” (“недостижимый код”), поскольку выяснил бы, что последний оператор println() никогда не будет выполняться. Во избежание этой ошибки в демонстрационном примере пришлось ввести компилятор в заблуждение с помощью оператора if. |