Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
Для того чтобы присвоить имя кодовому блоку, нужно поставить перед ним метку. Именовать можно как независимый блок, так и оператор, адресатом которого является кодовый блок. Роль метки может выполнять любой допустимый в Java идентификатор с двоеточием. Пометив кодовый блок, метку можно использовать в качестве адресата оператора break. Благодаря этому выполнение программы возобновляется с конца именованного блока. Например, в приведенном ниже фрагменте кода используются три вложенных блока.
// Применение оператора break с меткой,
class Break4 {
public static void main(String args[]) {
int i;
for(i=l; i<4; i++) {
one: {
two: {
three: {
System.out.println ("\ni is " + i) ;
// Переходы no меткам.
if(i==l) break one;
if(i==2) break two;
if(i==3) break three;
// Эта строка кода никогда не будет достигнута.
System.out.println("won't print");
}
System.out.println("After block three.");
}
System.out.println("After block two.");
}
System.out.println("After block one.");
}
System.out.println("After for.");
}
}
Выполнение этого фрагмента кода дает следующий результат:
i is 1
After block one.
i is 2
After block two.
After block one.
i is 3
After block three.
After block two.
After block one.
After for.
Рассмотрим подробнее приведенный выше фрагмент кода, чтобы лучше понять, каким образом получается именно такой результат его выполнения. Когда значение переменной i равно 1, условие первого оператора if становится истинным и управление передается в конец блока с меткой one. В результате выводится сообщение "After block one. " (После первого блока). Если значение переменной i равно 2, то успешно завершается проверка условия во втором операторе i f и выполнение программы продолжается с конца блока с меткой two. В результате выводятся по порядку сообщения "After block two." (После второго блока) и "After block one. ". Когда же переменная i принимает значение 3, истинным становится условие в третьем операторе if и управление передается в конец блока с меткой three. В этом случае выводятся все три сообщения: два упомянутых выше, а также сообщение "After block three. " (После третьего блока), а затем еще и сообщение "After for. " (После цикла for).
Обратимся к еще одному примеру. На этот раз оператор break будет использован для выхода за пределы нескольких вложенных циклов. Когда во внутреннем цикле выполняется оператор break, управление передается в конец блока внешнего цикла. Этот блок помечен меткой done. В результате происходит выход из всех трех циклов.
// Еще один пример применения оператора break с меткой,
class Break5 {
public static void main(String args[]) {
done:
for(int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
for (int k=0; k<10; k++) {
System.out.println(k + " ") ;
if(к == 5) break done; // переход по метке done
}
System.out.println("After k loop"); // не выполнится
}
System.out.println("After j loop"); // не выполнится
}
System.out.println("After i loop");
}
}
Ниже приведен результат выполнения данного фрагмента кода.
0
1
2
3
4
5
After i loop
Расположение метки имеет большое значение, особенно когда речь идет о циклах. Рассмотрим в качестве примера следующий фрагмент кода:
// Расположение метки имеет большое значение,
class Вгеак6 {
public static void main(String args[]) {
int x=0, y=0;
// Здесь метка располагается перед оператором,
stopl: for(x=0; х < 5; х++) {
for(у = 0; у < 5; у++) {
if(у == 2) break stopl;
System.out.println("х and у: " + x + " и + у);