русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Именованные блоки


Дата добавления: 2015-06-12; просмотров: 944; Нарушение авторских прав


в реальной практике достаточно часто используются вложенные dfffjiu. Соответственно, может возникнуть ситуация, когда из вложенно-f|< цикла нужно прервать внешний. Простое использование break или continue не решает этой задачи, однако в Java можно именовать блок кода явно указать операторам, к какому из них относится выполняемое действие. Делается это путем присвоения метки операторам do, while, for.

Метка — это любая допустимая в данном контексте лексема, окончившаяся двоеточием.

Рассмотрим следующий пример:

intarray[][] = {....}; for(inti=0;i<5;i++){ for(]=0;j<4; ]++) {

if(array[i][j] == caseValue) break;

} }

В данном случае при выполнении условия будет прервано выполне­ние цикла по ], цикл по i продолжится со следующего значения. Для того чтобы прервать выполнение обоих циклов, используется метка:

intarray[][] = {....}; outerLoop: for(int i=0;i<5;i++) { for(j=0;j<4; j++){

if(array[i][j] == caseValue) break outerLoop;

} }

Оператор continue также может использоваться с именованными блоками.

Между операторами break и continue есть еще одно существенное отличие. Оператор break может использоваться с любым именованным блоком, в этом случае его действие в чем-топохоже на действие goto. Оператор continue (как и отмечалось ранее) может быть использован только в теле цикла. То есть такая конструкция будет вполне приемлемой:

1Ь1:{

if( val > maxVal) break Ibl;

}

В то время как оператор continue здесь применять нельзя. В данном слу­чае при выполнении условия if выполнение блока с меткой 1Ы будет пре­рвано, то есть управление будет передано на оператор (выражение), сле­дующий непосредственно за закрывающей фигурной скобкой.

Метки используют пространство имен, отличное от пространства имен классов и методов.

Так, следующий пример кода будет вполне работоспособным:



public class Test { public TestO {}

public static void main(String[] args) {Test t = new TestO;

t.testO;}

void testO { Test: {test: for(int i =0;true;i++) { lf(i % 2 == 0) continue test; if(i> 10) break Test; System.out.print(i + ""); } } } }

Для составления меток применяются те же синтаксические правила, что и для переменных, за тем исключением, что метки всегда оканчива­ются двоеточием. Метки всегда должны быть привязаны к какому-либо блоку кода. Допускается использование меток с одинаковыми именами, но нельзя применять одинаковые имена в пределах видимости блока. Такая конструкция допустима:

1Ы: {System.out.println("Block 1");

} 1Ы:{System.out.phntlnC'Block 2");}

А такая нет:

1Ь1:{Ibl: {} }



<== предыдущая лекция | следующая лекция ==>
Оператор continue | Причины возникновения ошибок


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.791 сек.