Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Java.doc
Скачиваний:
836
Добавлен:
04.06.2015
Размер:
5.55 Mб
Скачать

Операторы прерывания break, continue, return, System.Exit

Часто требуется прерывать цикл или выполнение функции при выполнении некоторых условий и перейти на выполнение другого алгоритма или очередной итерации цикла. В Javaимеются гибкие структурные средства для решения подобных проблем – это операторыbreak, continue, return, System.exit:

continue прерывание выполнения тела цикла и переход к следующей итерациитекущегоцикла,

continue метка прерывание выполнения тела цикла и переход к следующей итерации цикла, помеченногометкой,

break выход изтекущегоцикла,

break метка выход из цикла, помеченногометкой,

return выход из текущей функции (в том числе из тела цикла)без возвратазначения,

return значение выход из текущей функции (в том числе из тела цикла)с возвратомзначения,

System.exit(n) выход изприложенияс кодом завершения nцелым числом, задаваемым программистом (n=0– выход нормальный, в остальных случаях – аварийный). Перед своим завершением приложение сообщает операционной системе код завершения, чтобы программист смог установить, по какой причине произошел аварийный выход,

метка идентификатор (имя), после которого ставится двоеточие. Метка может располагаться перед любым оператором. В этом случае оператор называетсяпомеченным:

label_1: // метка

for (int i=1; i<=4; i++)

for (int j=1; j<=4; j++)

{

if (i==j)

continue label_1; // переход на метку label_1

System.out.println(“i=” + i + “ j=” +j);

}

В окне вывода появится:

i=2 j=1

i=3 j=1

i=3 j=2

i=4 j=1

i=4 j=2

i=4 j=3

При выполнении условия (i==j)внутренний цикл прерывается, и управление передается внешнему циклу – берется следующее значение i, а внутренний цикл сбрасывается наj=1.

label_1:

for (int i=1; i<=4; i++)

for (int j=1; j<=4; j++)

{

if (i!=j)

break label_1; // переход на метку label_1

System.out.println(“i=” + i + “ j=” +j);

}

В окне вывода появится:

i=1 j=1

При первом же выполнении условия (i!=j)прерывается цикл, перед которым стоит меткаlabel_1, то есть внешний цикл, и программа заканчивает работу.

for (int i=1; i<=4; i++)

{

label_1:

for (int j=1; j<=4; j++)

{

if (i==j)

break label_1;

System.out.println(“i=” + i + “ j=” +j);

}

}

В окне вывода появится:

i=2 j=1

i=3 j=1

i=3 j=2

i=4 j=1

i=4 j=2

i=4 j=3

При первом же выполнении условия (i==j)прерывается цикл, перед которым стоит меткаlabel_1, то есть внутренний цикл , и управление передается внешнему циклу – берется следующее значение i, а внутренний цикл сбрасывается наj=1. Такой же результат получается, если совсем убрать меткуlabel_1 перед внутренним циклом:

for (int i=1; i<=4; i++)

for (int j=1; j<=4; j++)

{

if (i==j)

break;

System.out.println(“i=” + i + “ j=” +j);

}

Структуры данных

В повседневной практике обработки информации мы часто имеем дело с естественно организованными (объединенными) представлениями информации: текстами, списками, таблицами, анкетами. Такие организованные (структурированные) данные во многом облегчают их восприятие и обработку.

Естественная организация данных эффективно отражается в современных языках программирования понятием структур данных.

Под структурами данныхпонимаются специальным образом организованные совокупности данных, облегчающие реализацию алгоритма и их компьютерную обработку.

Отличительной особенность хорошо написанных программ является то, что данные в них организованы в определенные, наиболее подходящие для их хранения и обработки структуры, а сами программы являются лишь средством обработки этих структур независимо от их информационного содержания. Проектирование подходящих структур данных для их эффективной обработки программой столь же важно, и занятие это, возможно, более сложное, чем написание собственно операторов программы в соответствии с выбранным алгоритмом их обработки. Хорошо спроектированные структуры данных облегчают и ускоряют их обработку, улучшают понимание самой программы. Организация структур данных и их взаимодействия в объектно-ориентированном программировании занимает 95% объема времени написания программы.

К базовым структурамданных вJavaотносятся:

  • переменные,

  • массивы,

  • строки,

  • файлы.

Понятие переменныхбыло введено раньше – это структура данных, состоящая из отдельных элементов, каждый из которых имеет имя, тип и конкретное значение.