Similar presentations:
Программирование на языке Java.Тема 19. Операторы перехода
1. Программирование на языке Java
19. Операторы перехода2. Программирование на языке Java
Тема 19. Операторыперехода
3.
Оператор breakПрименение:
1. Завершение последовательности операторов в
операторе switch;
2. Завершение работы цикла.
3. Форма оператора безусловного перехода (goto)
3
4.
Использование break для выхода из циклаОператор break вызывает немедленное завершение
цикла, пропуская условное выражение и любой
Цикл должен
остальной код в теле цикла (управление передается
выполниться
оператору, следующему за циклом).
100 раз
int i;
При i = 10 цикл
for (i = 0; i < 100; i++) {
завершается
if (i == 10) break;
System.out.printf(“%d, ”,i);
}
System.out.println(”\nЦикл завершен.”);
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
Цикл завершен.
4
5.
Использование break для выхода из циклаint i = 0;
while (i < 100) {
if (i == 10) break;
System.out.printf(“%d, ”,i);
i++;
}
System.out.println(”\nЦикл завершен.”);
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
Цикл завершен.
5
6.
break внутри вложенных циклов – 1Внимание! В случае использования внутри набора
вложенных циклов оператор break осуществляет выход
только из самого внутреннего цикла.
6
7.
break внутри вложенных циклов – 2Внешний цикл
int i, j;
for
for (i
(i == 0;
0; ii << 3;
3; i++)
i++) {{
Внутренний
цикл
System.out.printf("Проход
System.out.printf("Проход %d:
%d: ",
", i);
i);
for (j
(j === 0;
0; jjj <<< 100;
100; j++)
j++) {{{
for
for
(j
0;
100;
j++)
10)
break;
if
(j
==
10)
break;
ifif
(j(j
====
10)
break;
System.out.printf("%d
j);
System.out.printf("%d
",
j);
System.out.printf("%d
",",
j);
}} }
System.out.print("\n");
System.out.print("\n");
}}
System.out.println("Циклы завершены.");
Проход 0: 0 1 2 3 4 5 6 7 8 9
Проход 1: 0 1 2 3 4 5 6 7 8 9
Проход 2: 0 1 2 3 4 5 6 7 8 9
Циклы завершены.
7
8.
Оператор breakОсобенности:
• В цикле можно использовать более одного оператора
break, НО, как правило большое число этих операторов
приводит к деструктуризации кода.
• Оператор break, который завершает
последовательность операторов в операторе switch,
оказывает влияние только на данный оператор switch,
а не на какие-либо содержащие его циклы.
• Оператор break нельзя использовать в качестве
обычного средства выхода из цикла, его нужно
использовать для выхода из цикла в определенных
особых ситуациях.
8
9.
Использование break в качестве gotobreak <label>;
label – имя метки, которая идентифицирует
некоторый блок кода.
Когда эта форма break выполняется, управление
передается из именованного блока кода (чья метка
указана в операторе break) на следующий за этим
блоком оператор.
Помеченный блок кода обязательно должен включать
данный оператор break.
Для именования блока метка помещается в его начале
(перед открывающей блок фигурной скобкой).
Метка – это любой допустимый идентификатор Java,
за которым следует двоеточие.
9
10.
Примерboolean t = true;
Выход из блока
first: {
second
second: {
third: {
println("Перед оператором break.");
if (t) {
break second;
}
println("никогда не выполнится");
}
println("никогда не выполнится ");
}
println(“Оператор после блока second.");
}
Перед оператором break.
Оператор после блока second.
10
11.
ПримерВыход из обоих
outer: {
for (int i = 0; i < 3; i++) {
циклов
printf("Проход %d: ", i);
for (int j = 0; j < 100; j++) {
if (j == 10)
break outer;
print(j + " ");
}
println("никогда не выполнится");
}
}
println("\nЦикл завершен.");
Проход 0: 0 1 2 3 4 5 6 7 8 9
Цикл завершен.
11
12.
12Пример
one: {
for (int i = 0; i < 3; i++) {
print("Проход %d: ", i);
}
}
for (int j = 0; j < 100; j++) {
if (j == 10)
break one;
print(j + " ");
}
?
Блок не
содержит break
Что не так?
13.
Оператор continueОператор continue применяется, когда в текущей
итерации цикла необходимо пропустить все команды до
конца тела цикла.
При этом сам цикл не прерывается, условия
продолжения или выхода вычисляются обычным
образом.
В циклах while и do-while оператор continue
вызывает передачу управления управляющему
условному выражению цикла.
В цикле for управление передается вначале
итерационной части цикла for, а потом условному
выражению.
13
14.
Использование continueint i;
for (i = 0; i < 10; i++) {
printf("%d ", i);
if (i % 2 == 0)
continue;
System.out.print("\n");
}
0
2
4
6
8
1
3
5
7
9
14
15.
Использование break и continue – 1for(int i = 0; i < 100; i++) {
if(i == 74) break;
if(i % 9 != 0) continue;
System.out.println(i);
}
0
9
18
27
36
45
54
63
72
15
16.
Использование break и continue – 2Бесконечный цикл
int i = 0;
while(true) {
i++;
int j = i * 27;
if(j == 1269) break;
if(i % 10 != 0) continue;
System.out.println(i);
}
10
20
30
40
16
17.
Оператор returnОператор return используется для выполнения
явного возврата управления из метода.
Например return из метода main() приводит к
возврату управления системе времени выполнения Java,
т.к. именно она вызывает метод main().
17
18.
18Использование return
Условие обязательно,
иначе компилятор
вернет ошибку.
После выполнения
return завершится
выполнение метода
main
boolean t = true;
System.out.println("До завершения возврата");
if (t)
return;
System.out.println("Этот оператор выполняться
не будет");
До завершения возврата