3. Управляющие структуры, работа с отладчиком.

### **Условный оператор if**

Алгоритмическая конструкция if используется в тех случаях, когда необходим выбор: сделать так или иначе. Оператор if обеспечивает выполнение или пропуск действия/инструкции в зависимости от указанного логического условия. Если условие истинно, то действие/инструкция выполняется. **Условие обязательно содержит логические операторы из табл. 5.** Блок-схема **неполного условия** выглядит как на рис.16.

На месте действия/инструкции может быть, как обычная инструкция (одна команда), так и составная инструкция (блок, содержащий несколько команд, в том числе, другие условные операторы).

```
if (логическое выражение/условие) действие/инструкция;

```

`или`

```
if (логическое выражение/условие)

```

```
 { блок действий/инструкций; }

```

Если действие/инструкцию можно разместить в одну строку, можно не использовать { }. Несмотря на то, что код в первом случае выглядит компактнее, только во втором случае можно было бы выполнить несколько действий/инструкций в случае истинности условия.

Рассмотрим применение if на следующем примере:

```
if (true) System.out.println("Тест прошёл успешно!");

```

`или`

```
int a = 2;

```

```
if (а>1) {System.out.println("Тест прошёл успешно!");}

```

Если значение переменной a > 1, то на экране мы увидим строку Тест прошёл успешно! Если не равно — то на экран ничего выводиться не будет.

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

```
// Пример 1

```

```
int a = 25;

```

```
if (a != 0) System.out.println( 100/a );

```

```
// Пример 2

```

```
int b = 25;

```

```
if (b != 0) { System.out.println("Результат равен: ");

```

```
        System.out.println( 100/b ); }

```

#### **Задание на работу с простой конструкцией if**

1.    Даны три числа. Упорядочите их в порядке возрастания. Программа должна считывать три числа a, b, c, затем программа должна менять их значения так, чтобы стали выполнены условия a <= b <= c, затем программа выводит тройку a, b, c. Внимание! Используйте три конструкции if для упорядочивания.

На выходе: три числа (пример, 1 1 2)

2.   Программа определяет время года по заданному номеру месяца n. Внимание! Используйте отдельные конструкции if.

На выходе: строка, равная одному из 4 значений: "зима", "весна", "лето", "осень".

3.   Программа определяет время суток по заданному часу месяца h. Внимание! Используйте отдельные конструкции if.

На выходе: строка, равная одному из 4 значений: "утро", "день", "вечер", "ночь".

4.   Программа определяет четверть на координатной плоскости в которой находится точка, координаты которой задаются значениями x и y.

На выходе: строка, равная одному из 4 значений: "I", "II", "III","IV" (пример, x = 1 у = -2 - IV)

Иногда приходится использовать **сложное условие**. Для его составления **используются логические значения из табл. 7.**

Напомним! Если мы используем &, то составное условие будет истинно, когда все простые условия истинны.

Если мы используем |, то составное условие будет истинно, когда хотя бы одно простое условие будет истинно.

Например: a > 7 и a < 15  на языке Java будет записываться (a > 7) & (a < 15), т.е. оба условия должны выполняться одновременно, чтобы составное условие было истинно. Или: (a == 7) | (a > 15), где составное условие будет истинно, если: либо a = 7, либо a > 17.

Рассмотрим примеры кода для задачи, в которой необходимо найти максимальное среди трех введенных чисел:

```
public class MyProgram {

```

```
    public static void main (String args[]) {

```

```
       int a, b, c;

```

```
       a = 3;

```

```
       b = 1;

```

```
       c = 8;

```

```
       if (a > b) & (a > c) {

```

```
              System.out.println ("Число " + a + " максимальное");}

```

```
if (b > a) & (b > c) {

```

```
System.out.println ("Число " + b + " максимальное");}

```

```
if (c > a) & (c > b) {

```

```
System.out.println ("Число " + c + " максимальное");} }

```