^
|
10
|
|
|
11
|
&&
|
12
|
||
|
13
|
? :
|
14
|
= op=
|
|
Низший
|
В первой строке таблицы приведены три необычных оператора, о которых мы пока не говорили. Круглые скобки () используются для явной установки приоритета. Квадратные скобки [] используются для индексирования переменной-массива. Оператор . (точка) используется для выделения элементов из ссылки на объект.
5. УПРАВЛЕНИЕ ВЫПОЛНЕНИЕМ ПРОГРАММЫ
Управление выполнением (flow control) позволяет изменять последовательность выполнения фрагментов программы, выбирая в зависимости от состояния данных ту или иную ветвь кода. Ветвление, циклы и вызовы подпрограмм - это разновидности управления выполнением программы. Все наши программы до сих пор были полностью линейны - операторы выполнялись строго по порядку, один за другим. В более сложных программах часто требуется, чтобы в зависимости от условий выполнялись одни операторы, а другие при этом пропускались. Для управления выполнением программного кода в Java имеется несколько возможностей, основанных на использовании условных операторов.
5.1. Условный оператор if-else
Конструкция if-elseпозволяет в зависимости от некоторого логического значения выполнять различные части программного кода. В обобщенной форме этот оператор записывается следующим образом:
if (логическое выражение) оператор 1; [else оператор2;]
Раздел elseнеобязателен. На месте любого из операторовможет стоять составной оператор,заключенный в фигурные скобки. Логическое выражениеэто любое выражение, возвращающее значение типа boolean. Это может быть и простая переменная типа boolean.
int bytesAvailable;
//...
if (bytesAvailable > 0) {
ProcessData(); //Обработка данных
bytesAvailable -= n;
}
else
waitForMoreData(); //Ждать данные
В качестве логического выраженияможно использовать выражение с операторами отношения. Это позволяет выбирать ту или иную ветвь кода в зависимости от результатов сравнения. А вот полная программа, в которой для определения, к какому времени года относится тот или иной месяц, используются операторы if-else.
class IfElse {
public static void main(String args[]) {
int month = 4;
String season;
if (month == 12 || month == 1 || month == 2)
{
season = "Winter";
}
else if (month ==3 || month == 4 || month == 5)
{
season = "Spring";
}
else if (month == 6 || month == 7 || month == 8)
{
season = "Summer";
}
else if (month == 9 || month == 10 || month == 11)
{
season = "Autumn";
}
else
{
season = "Bogus Month";
}
System.out.println( "April is in the " + season + ".");
}
}
После выполнения программы вы должны получить следующий результат:
April is in the Spring.
5.2. Опреатор break
Оператор breakсообщает исполняющей среде, что следует прекратить выполнение именованного блока и передать управление оператору, следующему за данным блоком. Для именования блоков в языке Java используются метки. Оператор breakпри работе с циклами и в операторах switchможет использоваться без метки. В таком случае подразумевается выход из текущего блока. Для именования блока перед ним помещается метка, состоящая из идентификатора и следующего за ним двоеточия. После объявления метки на нее можно ссылаться в операторе break.При этом управление передается оператору, расположенному за поименованным блоком.
Например, в следующей программе имеется три вложенных блока, и у каждого своя уникальная метка. Оператор break, стоящий во внутреннем блоке, вызывает переход на оператор, следующий за блоком Ь. При этом пропускаются два оператора println.
class Break {
public static void main(String args[]) {
boolean t = true;
a: {
b: {
c: {
System.out.println("ITepefl break");
if(t) break b;
System.out.println("He будет выполнено "); }
System.out.println("He будет выполнено "); }
System.out.println("noane b");
}
} }
В результате исполнения программы вы получите следующий результат:
До break
После b
5.3. Оператор switch
Оператор switchобеспечивает ясный способ переключения между различными частями программного кода в зависимости от значения одной переменной или выражения. Общая форма этого оператора такова:
Читать дальше