Модуль: Java. Условный оператор


Наибольшее из двух чисел - ВАРИАНТ 1

Хотите научиться создавать мощные, "интеллектуальные", универсальные и полезные программы?

Тогда вам необходимо изучить три основные формы управления процессом выполнения программ. Согласно теории вычислительных систем, хороший язык программирования должен обеспечивать реализацию трех форм управления процессом выполнения программ:
1 - ПОСЛЕДОВАТЕЛЬНОСТЬ:  Выполнение последовательных операторов - с этим мы уже познакомились в более ранних курсах. Все наши предыдущие программы представляли собой некоторую последовательность операторов
2 - ВЫБОР:
          если такой и такой случай,
              тогда сделать это
          иначе сделать то
3 - ПОВТОРЕНИЕ:
          WHILE (до тех пор, пока такой и такой случаи — делать это)

Программу становятся более "интеллектуальными", а также чрез вычайно увеличивает эффективность работы компьютеров вторая форма - ВЫБОР между различными способами действия. 

Начнем с простого примера. 
Необходимо ввести с клавиатуры два вещественных числа и определить наибольшее из них.
Разберите данный пример.

Задача для тренировки:

Наибольшее из двух чисел - ВАРИАНТ 1

Условный оператор - IF

В задаче про нахождение максимального числа из двух мы встретили новый оператор, который начинался со слова IF
Это оператор называется - УСЛОВНЫЙ 
Слово if переводится с английского языка как "если", а слово else - как "иначе". Если условие после слова if верно (истинно), то выполняются все команды (операторы), стоящие после условия в фигурных скобках {}. Если условие неверно (ложно), то выполняются команды, стоящие в фигурных скобках после слова else.

ОБЩИЙ ВИД УСЛОВНОГО ОПЕРАТОРА:

if ( условие ) // заголовок с условием
{
  ... // блок «если» — операторы, которые выполняются,
      // если условие в заголовке истинно
}
else
{
   ... // блок «иначе» — операторы, которые выполняются,
       // если условие в скобках ложно
}
ЗАПОМИНАЕМ:
1. IF - ELSE  -  ЭТО ОДИН ОПЕРАТОР!
   Поэтому между скобдкой, завершающей блок "если" ( } ) и словом else не могут находиться ругие операторы
2. после слова else НИКОГДА УСЛОВИЕ НЕ СТАВИТСЯ.
     Блок "иначе" выполняется тогда, когда основное условие, указанное после слова IF  - ложно, т.е. не выполняется
3. В случае если, в блоке "если" или в блоке "иначе" стоит только один оператор, то фигурные скобки можно опустить
4. УСЛОВИЕ - это выражение, относительно которого можно сказать истинно оно (то есть выполняется) или ложно (то есть не выполняется)
   В условии можно использовать знаки логических отношений
   > , <                больше меньше
  >=, <=             больше или равно, меньше или равно
  ==                    равно
  !=                     не равно

5. В языке программирования Java любое число, не равное нулю, обозначает истинное условие, а ноль - ложное условие

 

Задача для тренировки:

Условный оператор - IF

Наибольшее из двух чисел - ВАРИАНТ 2

Рассмотрим второй вариант решения задачи о поиске максимального из двух чисел. 
Во второй программе, мы будем сначала максимальное значение записывать в дополнительную  переменную (дадим ей имя Max)

Задача для тренировки:

Наибольшее из двух чисел - ВАРИАНТ 2

Неполный условный оператор

Если в блоке «иначе» не надо ничего делать (например: «если в продаже есть мороженое, купи мороженое», а если нет ...), то весь блок «иначе» можно опустить и использовать сокращенную (неполную) форму условного оператора:
if ( условие )
 {
   ... // что делать, если условие истинно
 }
Рассмотрим пример решения задачи на поиск максимального из двух чисел, с использованием неполной формы условного оператора
 

Задача для тренировки:

Неполный условный оператор

Максимум из четырех чисел

Используя для примера программу из задачи "Неполный условный оператор" на поиск максимального из двух чисел, напишите программу, которая будет выводить максимальное значение из четырех чисел.

Вам будет дана подсказка в виде словесного алгоритма.

Задача для тренировки:

Максимум из четырех чисел

Вложенный условный оператор

В блоки «если» и «иначе» могут входить любые другие операторы, в том числе и другие вложенные условные операторы; при этом оператор else относится к ближайшему предыдущему if

Например 
if ( A > 10 )
  if ( A > 100 )
    System.out.print("У вас очень много денег.");
  else
    System.out.print("У вас достаточно денег.");
else
    System.out.print("У вас маловато денег.");
Чтобы легче разобраться в программе, все блоки «если» и «иначе» (вместе с ограничи вающими их скобками) сдвигаются вправо на 2-3 символа - такая запись называется запись «лесенкой»
Запись "лесенкой" является хорошим тоном любого программиста!

Задача для тренировки:

Вложенный условный оператор

Сложные условия

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

Давайте разберемся, что такое СЛОЖНЫЕ УСЛОВИЯ

Простейшие условия состоят из одного отношения (больше, меньше и т.п.) Но иногда необходимо объединение простых условий в более сложные, например: на улице холодно и идет дождь. Два простых условия (на улице холодно), (на улице идет дождь) здесь связаны связкой И.

СЛОЖНОЕ УСЛОВИЕ - состоит из двух или нескольких простых отношений (условий), которые объединяются с помощью логических операций
  И - логическое умножение - на языке Java записывается как && (или and)
  ИЛИ - логчиеское умножение - на языке Java записывается как || (или or)
  НЕ - логчиеское умножение - на языке Java записывается как 

Операция И - требует одновременное выполнение двух условий
  условие 1 && условие 2   - будет принимать истинное значение, только если оба простых условия истинны одновременно
причем, в языке программирования Java - если условие 1 ложно, то условие 2 проверяться не будет

Операция ИЛИ - требует выполнение хотя бы одного из условий
  условие 1 ||  условие 2   - будет принимать ложное значение, только если оба простых условия ложны одновременно
причем, в языке программирования Java - если условие 1 истинно, то условие 2 проверяться не будет

Операция НЕ 
 ! условие 1 - будет принимать ложное значение, условие 1 истинно и наоборот
Например, следующие два условия равносильны:   A>B     и    !(A<=B)

ПРИОРИТЕТ ВЫПОЛНЕНИЯ ЛОГИЧЕСКИХ ОПЕРАЦИЙ И ОТНОШЕНИЙ
1 операции в скобках
2 операция НЕ
3 логические отношений >, <, >=, <=, ==, !=
4 операция И
5 операция ИЛИ
Для изменения порядка действий используются круглые скобки

ЛОГИЧЕСКИЕ ПЕРЕМЕННЫЕ
Во многих языках программирования есть возможность использовать переменные, которые хранят логические значения ("истина"/"ложь"). В С++ такие переменные могут принимать значения true (истина) или false (ложь). Например, фрагмент программы 

boolean a, b;
a = true;
b = false;
System.out.print(a || b);
Выведет на экран 1 (что соответствует значению true, значению false соответствует 0).
Логические переменные относятся к типу bool, названной в честь английского математика Джорджа Буля - создателя алгебры логики.

Задача для тренировки:

Сложные условия