Назад
Вперед
1.5. Операторы структурного программирования
В примере демонстрируются различные приемы
работы с одномерными, многомерными и
несимметричными массивами.
Исходный текст примера
Архив проекта для Java WorkShop 2.0
Немного теории
В Java вы можете использовать те же самые
операторы структурного программирования, что и
языке программирования С, а именно:
Оператор |
Для чего применяется |
if, else |
Выполнение тех или иных строк программы
в зависимости от выполнения логического условия,
указанного в операторе if |
for |
Оператор цикла. Проверка условия
завершения, а также итерация выполняется в
начале цикла |
while |
Оператор цикла с проверкой условия
завершения, выполнямой в начале цикла |
do-while |
Оператор цикла с проверкой условия
завершения, выполнямой в конце цикла |
continue |
Продолжение выполнения цикла с его
начала |
break |
Прерывание выполнения цикла |
switch |
Переключатель. Используется для
исполнения того или иного фрагмента кода в
зависимости от значения переменной или
выражения |
Описание примера
В нашем примере мы демонстрируем использование
всех перечисленных выше операторов структурного
программирования.
Оператор if-else
В начале фрагмента программы, демонстрирующего
применение оператора if-else, мы создаем три
переменных:
int i = 5;
int j = 6;
boolean f;
Программа вычисляет выражение (i - j)*2 и
сравнивает его с нулем в операторе if:
if((i - j) * 2 > 0)
System.out.println("(" + i + " - "
+ j + ") * 2 > 0");
else
{
System.out.println("(" + i + " - "
+ j + ") * 2 <= 0");
f = (i == i);
if(f)
{
System.out.println("i == i");
}
}
В зависимости от знака выражения на консоли
отображается одна из двух строк. В нашем случае
выражение имеет отрицательный знак (оно равно -2),
поэтому на консоль будет выведена следующая
строка:
(5 - 6) * 2 <= 0
Второй оператор if выполняется только в том
случае, если выражение (i - j)*2 меньше нуля. В
этом операторе анализируется содержимое
логической переменной f.
Если эта переменная равна true, то на консоль
выводится текстовая строка, показанная ниже:
i == i
Переменная f вычисляется следующим образом:
f = (i == i);
Здесь в переменную f записывается результат
операции сравнения переменной i самой с собой. Он
всегда равен true.
Оператор for
Цикл for в нашей программе выглядит следующим
образом:
for(i = 0; i < 10; i++)
{
System.out.print(i + " ");
}
Здесь переменная i используется в качестве
переменной цикла. Перед началом цикла ей
присваивается нулевое значение.
Затем содержимое i сравнивается с числом 10. Если
i меньше 10, тело цикла выполняется один раз. Вслед
за этим значение i увеличивается на единицу.
Далее i вновь сравнивается с числом 10. Когда i
превысит это значение, работа цикла будет
прервана.
Таким образом, параметр цикла анализируется
перед выполнением тела цикла, а модифицируется
после выполнения этого тела.
Вот что приведенный выше фрагмент программы
выведет на консоль:
0 1 2 3 4 5 6 7 8 9
Оператор break
Оператор break может прервать выполнение цикла в
любой момент. Например, в нашей программе мы
прерываем работу цикла, когда значение
переменной i становится больше пяти:
for(i = 0; i < 10; i++)
{
if(i > 5)
break;
System.out.print(i + " ");
}
В результате на консоль будут выведены цифры от
0 до 5:
0 1 2 3 4 5
Оператор while
Оператор while проверяет условие завершения
цикла перед выполнением тела цикла:
i = 0;
while(i < 10)
{
System.out.print(i + " ");
i++;
}
В отличие от оператора for оператор while никак не
изменяет значение переменной цикла, поэтому мы
должны позаботиться об этом сами.
Перед тем как приступить к выполнению цикла, мы
устанавливаем начальное значение параметра
цикла i, равное нулю.
После выполнения тела цикла мы сами изменяем
значение параметра цикла, увеличивая его не
единицу.
Цикл будет прерван, как только значение
переменной i превысит 10.
Оператор continue
Ниже мы показали цикл, в котором используется
оператор continue:
i = 0;
while(true)
{
i++;
System.out.print(i + " ");
if(i < 9)
continue;
else
break;
}
Если в ходе выполнения цикла значение
переменной i не достигло девяти, цикл
возобновляет свою работу с самого начала (то есть
с оператора i++).
Когда указанное значение будет достигнуто,
выполнение цикла будет прервано оператором break.
Оператор do-while
При использовании оператора do-while условие
завершения цикла проверяется после выполнения
его тела:
i = 0;
do
{
System.out.print(i + " ");
i++;
} while(i < 10)
В этом цикле мы сами устанавливаем начальное
значение параметра цикла i и сами его изменяем,
увеличивая на единицу.
Как только это значение достигнет 10, цикл будет
прерван.
Оператор switch
В нашей программе оператор switch используется
для выбора одной из нескольких строк,
отображаемых на консоли. Выбор делается в
зависимости от значения переменной i:
i = 2;
switch(i)
{
case 1:
{
System.out.println("case 1");
break;
}
case 2:
{
System.out.println("case 2");
break;
}
case 3:
{
System.out.println("case 3");
break;
}
default:
{
System.out.println("default");
break;
}
}
Так как содержимое переменной i равно двум, на
консоли всегда будет отображаться строка "case
2". Вы можете попробовать другие значения
самостоятельно, отредактировав соответствующим
образом исходный текст примера.
Полный листинг
Ниже мы показали полный листинг, который наша
программа выводит на консоль в процессе своей
работы:
if-else
(5 - 6) * 2 <= 0
i == i
for
0 1 2 3 4 5 6 7 8 9
for-break
0 1 2 3 4 5
while
0 1 2 3 4 5 6 7 8 9
while-continue
1 2 3 4 5 6 7 8 9
do-while
0 1 2 3 4 5 6 7 8 9
switch
case 2
Назад Вперед |