cpp

Оператор ветвления if

Оператор ветвления if позволяет в зависимости от значения логического выражения выполнить отдельный блок программы или наоборот не выполнять его. Оператор имеет следующий формат:

if [<Инструкция>; ]<Логическое выражение> {
   <Блок, выполняемый если условие истинно>
} [else {
   <Блок, выполняемый если условие ложно>
}]

Если логическое выражение возвращает значение true (Истина), то выполняются инструкции, расположенные внутри фигурных скобок, сразу после оператора if. Если логическое выражение возвращает значение false (Ложь), то выполняются инструкции после ключевого слова else. Блок else является необязательным. В параметре <Инструкция> можно объявить переменную, которая будет видна только внутри оператора if.

В качестве примера проверим число, введенное пользователем, на четность и выведем соответствующее сообщение (листинг 3.2).

Листинг 3.2. Проверка числа на четность

package main

import (
   "fmt"
   "os"
)

func main() {
   var x int = 0
   fmt.Print("Введите целое число: ")
   if _, err := fmt.Scanln(&x); err != nil {
      fmt.Fprintln(os.Stderr, "Вы ввели не число")
   } else {
      if x % 2 == 0 {
         fmt.Println(x, "- четное число")
      } else {
         fmt.Println(x, "- нечетное число")
      }
   }
}

Как видно из примера, один оператор ветвления можно вложить в другой. Первый оператор if получает число и проверяет отсутствие ошибки при вводе числа. Если ошибки при вводе числа нет, то выполняется блок else. В этом блоке находится второй оператор ветвления, который проверяет число на четность. В зависимости от условия x % 2 == 0 выводится соответствующее сообщение. Если число делится на 2 без остатка, то оператор % вернет значение 0, в противном случае — число 1.

В листинге 3.2 при вложении операторов мы воспользовались следующей схемой:

if <Условие 1> {
   // Инструкции
} else {
   if <Условие 2> {
      // Инструкции
   } else {
      // Инструкции
   }
}

Чтобы проверить несколько условий эту схему можно изменить так:

if <Условие 1> {
   // <Блок 1>
} else if <Условие 2> {
   // <Блок 2>
} else if <Условие N> {
   // <Блок N>
} else {
   // <Блок else>
}

Если <Условие 1> истинно, то выполняется <Блок 1>, а и все остальные условия пропускаются. Если <Условие 1> ложно, то проверяется <Условие 2>. Если <Условие 2> истинно, то выполняется <Блок 2>, а все остальные условия пропускаются. Если <Условие 2> ложно, то точно также проверяются остальные условия. Если все условия ложны, то выполняется <Блок else>. В качестве примера определим, какое число от 0 до 2 ввел пользователь (листинг 3.3).

Листинг 3.3. Проверка нескольких условий

package main

import (
   "fmt"
   "os"
)

func main() {
   var x int = 0
   fmt.Print("Введите число от 0 до 2: ")
   if _, err := fmt.Scanln(&x); err != nil {
      fmt.Fprintln(os.Stderr, "Вы ввели не число")
   } else {
      if x == 0 {
         fmt.Println("Вы ввели число 0")
      } else if x == 1 {
         fmt.Println("Вы ввели число 1")
      } else if x == 2 {
         fmt.Println("Вы ввели число 2")
      } else {
         fmt.Println("Вы ввели другое число")
         fmt.Println("x =", x)
      }
   }
}

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp