Найти тему

Крутой курс Java для "чайников". Урок 12. Ветвление с помощью оператора if else. Часть 2.

Ещё одним вариантом работы оператора if является использование его с ключевым словом else.

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

if ( проверочное выражение ) код для исполнения если истина;

else код для исполнения если ложь;

В данном случае все варианты использования оператора if также актуальны и для if else.

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

if ( ( проверочное выражение 1 ) || ( проверочное выражение 2 ) )

{

команда 1;

команда 2;

...

команда n;

}

else

{

команда 3;

команда 4;

...

команда m;

}

Отвечу ещё на один вопрос, который возникал по крайней мере у меня. А зачем вообще нужна вторая часть оператора - else? Если условие в скобках ложно, то команды 1, 2 ... n по идее итак не должны выполниться... А следом вроде бы итак должны выполниться команды 3, 4 ... m.

Но нет. else всё-таки нужная штука.

Вариант 1. Если бы не было else.

Тогда если значение сложного выражения в скобках истинно, то команды 1, 2 ... n выполнятся. Если бы дальше не было else, то дальше выполнились бы команды 3, 4 ... m в любом случае, независимо от истинности выражения в скобках.

Таким образом, команды 1, 2 ... n либо выполнятся (если значение выражения истинно), либо не выполнятся (если ложно). А команды 3, 4 ... m выполнятся в любом случае.

Вариант 2. else есть.

В таком случае если проверочное выражение верно, то выполнятся команды 1, 2 ... n. Если проверочное выражение ложно, то выполнятся команды 3, 4 ... m.

То есть в данном случае у нас есть выбор - либо выполнятся команды 1, 2 ... n, либо выполнятся 3, 4 ... m.

Если рассматривать с точки зрения алгоритма, то первый вариант:

Второй вариант:

-2

Ну и теперь задача.

Мы задаём время - только час. Без минут. Нужно определить, до полудня или после полудня заданный час. И вывести на экран количество часов в интервале от 1 до 12 и указать до полудня или после полудня.

Например, если мы задали 7, то программа должна вывести "Сейчас 7 часов до полудня". Если задали 14, то программа должна вывести "Сейчас 2 часа после полудня". Для упрощения задачи - если мы задаём 12, то считаем, что это 12 часов до полудня, если 24 - то это 12 часов после полудня. Интервал значений - от 1 до 24 (0 не задаём).

Рисуем алгоритм.

-3

Как и все предыдущие он не совершенен, но для понимания работы оператора if () else он подойдёт.

Переводим алгоритм в код

Создаём новый класс с именем Polden и объявляем главный метод main

class Polden

{

public static void main (String[] args)

{

}

}

Как и в предыдущем уроке двигаемся по стрелкам.

Объявляем переменную chas и задаём ей значение.

int chas = 18;

Далее проверяем, находится ли значение переменной chas в интервале от 0 до 12. Если находится, то сразу выводим её значение на экран.

if ( ( chas >0 ) && ( chas <= 12 ) )

{

System.out.println("Сейчас " + chas + ":00" + " до полудня");

}

Выделим фигурными скобками код для исполнения для лучшей читаемости кода.

Если переменная chas не находится в интервале от 0 до 12, то идём по второй стрелке ромба в алгоритме.

else

{

chas = chas - 12;

System.out.println("Сейчас " + chas + ":00" + " после полудня");

}

Уменьшили переменную chas на 12 и вывели значение на экран.

Сохраняем файл с именем Polden.java

-4

Компилируем и запускаем

-5

Попробуйте самостоятельно изменить значение переменной chas на любое целое число в интервале от 1 до 24 включительно и проверьте результат выполнения программы.

Выводы:

  • Конструкция if () else является наиболее распространенным вариантом условного ветвления программы;
  • Конструкция if () else позволяет выбрать какой набор команд будет выполняться - стоящий после скобок (если выражение в них истинно) или после ключевого слова else (если выражение в скобках ложно);
  • В случае необходимости выполнить не одну команду, а несколько, как в случае истинности выражения, так и в случае если оно ложно, все команды необходимо заключить в фигурные скобки { }.

Ссылка на предыдущий урок

Ссылка на следующий урок

Ссылка на содержание курса