Главная страница

АБОБА. Справочник по программированию на Java Методическое пособие


Скачать 242.41 Kb.
НазваниеСправочник по программированию на Java Методическое пособие
АнкорАБОБА
Дата20.02.2022
Размер242.41 Kb.
Формат файлаdocx
Имя файла12642_java_method_1.docx
ТипСправочник
#368066
страница21 из 67
1   ...   17   18   19   20   21   22   23   24   ...   67

Управляющие операторы


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

Операторы выбора


В Java поддерживаются два оператора выбора: if и switch. Эти операторы позволяют управлять порядком выполнения команд программы в соответствии с условиями, которые известны только во время выполнения.

Оператор if – оператор условного выбора ветви Java-программы. Его можно использовать для направления выполнения программы по двум различным ветвям. Общая форма этого оператора выглядит следующим образом:

if (условие) оператор1;

else оператор2;

Здесь каждый оператор – это одиночный оператор или составной оператор, заключенный в фигурные скобки (т.е. блок). Условие – это любое выражение, возвращающее значение типа boolean. Выражение else не обязательно. Оператор if работает следующим образом: если условие истинно, программа выполняет оператор1. В противном случае она выполняет оператор2 (если он существует). Ни в одной из ситуаций программа не будет выполнять оба оператора.

Для управления оператором if можно применять и одиночную переменную типа boolean, как показано в следующем фрагменте кода:

boolean dataAvailable;

// ...

if (dataAvailable)

ProcessData();

else

waitForMoreData();

Помните, что только один оператор может следовать непосредственно за ключевым словом if или else. Если нужно включить больше операторов, придется создать код, подобный приведенному в следующем фрагменте:

int bytesAvailable;

// ...

if (bytesAvailable > 0) {

ProcessData();

bytesAvailable -= n;

} else

waitForMoreData();

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

Некоторые программисты предпочитают использовать в операторе if фигурные скобки даже при наличии только одного оператора в каждом выражении. Это упрощает добавление операторов в дальнейшем и избавляет от беспокойства по поводу наличия фигурных скобок. Фактически пропуск определения блока в тех случаях, когда он необходим – достаточно распространенная ошибка. Например, рассмотрим следующий фрагмент кода:

int bytesAvailable;

// ...

if (bytesAvailable > 0) {

ProcessData();

bytesAvailable -= n;

} else

waitForMoreData();

bytesAvailable = n;

Если судить по уровню отступа в коде, предполагалось, что операторbytesAvailable=n; должен выполняться внутри выражения else. Однако, как вы помните, в Java-программе пробелы значения не имеют, и компилятор никак не может “узнать” намерения программиста. Компиляция этого кода будет выполняться без вывода каких-либо предупреждающих сообщений, но при выполнении программа будет вести себя не так, как было задумано. В следующем фрагменте ошибка предыдущего примера исправлена:

int bytesAvailable;

// ...

if (bytesAvailable > 0) {

ProcessData();

bytesAvailable -= n;

} else {

waitForMoreData();

bytesAvailable = n;

}

Вложенные операторы if


Вложенный оператор if – это оператор if, являющийся целью другого оператора if или else. В программах вложенные операторы if встречаются очень часто. При использовании вложенных операторов if важно помнить, что оператор else всегда связан с ближайшим оператором if, расположенным в одном с ним блоке и еще не связанным с другим оператором else. Например:

if(i == 10) {

if(j < 20) a = b;

if(k > 100) c = d; // этот оператор if

else a = c; // связан с этим оператором else

}

else a = d; // этот оператор else связан с оператором if(i == 10)

Как видно из комментариев, последний оператор else связан не с оператором if(j<20), поскольку тот не находится в одном с ним блоке (несмотря на то, что он является ближайшим оператором if, который еще не связан с оператором else). Последний оператор else связан с оператором if(i==10). Внутренний оператор else связан с оператором if(k>100), поскольку тот является ближайшим внутри этого же блока.
1   ...   17   18   19   20   21   22   23   24   ...   67


написать администратору сайта