Оператори переходу в java - урок №18

Оператори переходу використовуються для передачі управління від однієї частини програми до іншої. У мові Java існує 3 таких оператора: break, continue, return. Оператор break використовується для виходу з циклу, а також в якості безумовного оператора переходу. Оператор continue при черговій ітерації циклу переходить до початку циклу, пропустивши виконання деяких операторів. Оператор returne використовують для виконання явного виходу з методу.

Оператор break.

Цей оператор нам вже знайомий по уроку, присвяченому оператору switch. Там він завершував послідовність операторів. Крім цього, оператор break використовують для виходу з циклу, а також в якості оператора безумовного переходу. Розглянемо більш докладно 2 останніх застосування.

Оператор break використовується для виходу з циклу.

Як ми знаємо, цикл виконується до тих пір, поки виконується умова циклу. Як тільки умова перестане дотримуватися, цикл завершить роботу і будуть виконуватися оператори, такі за циклом. Оператор break дозволяє вийти з циклу, не звертаючи увагу на умову, тобто навіть в тому випадку, якщо умова дотримується.

Ця програма з циклом for повинна вивести на екран значення змінної "i". Причому за умовою циклу (i<100) это число должно быть выведено 100 раз (от 0 до 99).

Однак в програмі є оператор break (рядок №5). Зверніть увагу, break записується як оператор умовного оператора if. Оператор вибору if перевіряє умова (i == 10) і як тільки ця умова дотримується, буде виконаний оператор break (вихід з циклу).

Таким чином, незважаючи на те, що цикл повинен повторитися 100 раз, він буде завершений вже після 11-ї ітерації (як тільки змінна "i" стане рівною 10). Після цього буде виконаний оператор, наступний за тілом циклу (рядок №7).

Оператори переходу в java - урок №18

Слід сказати, що оператор break може використовуватися не тільки з циклом for, але і з будь-яким іншим циклом (наприклад, while).

Оператор break здійснює примусовий вихід з того циклу, всередині якого він знаходиться. На всі інші цикли він не робить ніякого впливу. Це відноситься і до тих випадків, коли оператор break знаходиться всередині вкладеного циклу. У цьому випадку він не впливає на зовнішній цикл.

Оператор break як оператор безумовного переходу.

У багатьох мовах програмування є оператор безумовного переходу goto. Його застосування створює деякі проблеми для розуміння і підтримки програм, оскільки він ламає їх структуру. Однак, в деяких випадках, застосування цього оператора є корисним. У java відсутня оператор goto і замість нього використовується розширена версія оператора break. Він дозволяє здійснити вихід з будь-якого блоку коду або з вкладених циклів з великим рівнем вкладеності.

Така форма оператора break має наступний синтаксис:

"Метка" - це довільний ідентифікатор, який придумує сам програміст. Цією міткою позначаються блоки коду програми. Після мітки ставиться двокрапка.

У цій програмі ми позначили мітками 2 блоки коду. Перший блок позначений міткою "a" (рядок №4-№13). Другий блок позначений міткою "b" (рядок №5-№11). Другий блок знаходиться всередині першого блоку. Після міток ставитися двокрапка. У другому блоці після першого оператора (рядок №6) використовується оператор break з міткою "b". В результаті відбудеться примусовий вихід з цього блоку і всі інші оператори не будуть виконані (рядок №9 і №10). З внутрішнього блоку на екран буде виведений тільки "Оператор 1", а "Оператор 2" і "Оператор 3" будуть пропущені.

Оператор continue.

Даний оператор виконувати чергову ітерацію циклу, пропускаючи деякі оператори з тіла циклу.

Рядок №4. Виводимо на екран повідомлення: "Число" + "Значення змінної" i "+" Пробіл ".

Рядок №5. Перевіряємо умову. Якщо чергове значення змінної "i" парне, то починає працювати оператор continue. В результаті, оператор в рядку №6 пропускається і знову виконується оператор в рядку №4.

Як працює ця програма.

У рядку №4 оператор виведення на екран виводить в циклі числа від "1" до "10". Причому ці числа виводяться в один рядок (System.out.print). Після виведення 1-ого числа (0) перевіряється умова в рядку №5. Залишок від цілочисельного ділення (%) в даному випадку дорівнює 0. Тобто умова дотримується і починає діяти оператор continue, який передає управління в початок циклу, не виконуючи оператор в рядку №6. На 2-й ітерації циклу, змінна "i" дорівнює "1". Це значення виводиться на екран. Знову перевіряється умова (i% 2 == 0). В даному випадку умова не дотримується, тому оператор continue не працює і виконується оператор в рядку №6. Він виведе на екран пробіл і переведе курсор на наступний рядок (System.out.println).

Оператори переходу в java - урок №18

Оператор return.

Більш детально даний оператор буде розглянуто в наступних уроках. Зараз слід лише сказати, що даний оператор записується всередині методу і призводить до повернення до того об'єкту, який викликав даний метод.

Оператори переходу в java - урок №18

У даній програмі "Оператор 2" не буде виконуватися взагалі. Після оператора return відбувається повернення управління до системи часу виконання Java, тому що саме вона викликала метод main ().