C++ для начинающих: Условные операторы if

Условные операторы позволяют добавлять логику в программу, изменяя её поведение в зависимости от условий. Программа будет взаимодействовать с пользователем по-разному в зависимости от исходных данных.

Объявление переменной и простое условие

Объявим переменную x и присвоим ей значение 5:

int x = 5;

Создадим условный оператор if. Ключевое слово if следует за открывающей круглой скобкой, внутри которой записывается условие. Для проверки на равенство используется два знака равенства (==). Один знак равенства (=) — это оператор присваивания, а не сравнения.

if (x == 5) {
  printf("Супер!\n"); 
}

Если x равно 5, внутри фигурных скобок выведется «Супер!» в консоль. Если условие ложно, код внутри фигурных скобок не выполнится. Перевод строки \n обеспечивает более чистый вывод.

Операторы сравнения

Можно использовать следующие операторы сравнения:

  • > (больше)
  • < (меньше)
  • >= (больше или равно)
  • <= (меньше или равно)
  • != (не равно)

Примеры:

if (x > 5) { printf("Вес\n"); }
if (x < 5) { printf("Лес\n"); }
if (x >= 7) { printf("Вес\n"); }
if (x != 10) { printf("Вес\n"); }

Операторы else и else if

Оператор else выполняется, если условие if ложно:

if (x == 10) {
  printf("Текст 1\n");
} else {
  printf("Текст 2\n");
}

Оператор else if позволяет добавить дополнительные проверки:

if (x == 10) {
  printf("x равен 10\n");
} else if (x > 100) {
  printf("x больше 100\n");
} else {
  printf("Ничего из вышеперечисленного\n");
}

else всегда располагается в конце и не может существовать без if. else if должен следовать за if и может повторяться несколько раз.

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

Условные операторы могут быть вложены друг в друга:

if (x < 5) {
  printf("x меньше 5\n");
} else {
  if (x == 105) {
    printf("x равен 105\n");
  }
}

Если внутри условного оператора только одна строка кода, фигурные скобки можно опускать.

Логические операторы

Для объединения условий используются логические операторы:

  • || (ИЛИ): условие выполняется, если хотя бы одно из условий истинно.
  • && (И): условие выполняется, только если оба условия истинны.

Примеры:

int y = 5;
if (x == 10 || x == 20) { printf("Из\n"); }

if (x == 10 && y < 7) { printf("Но\n"); }

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

switch используется для проверки одной переменной на равенство нескольким значениям:

int x = 15;
switch (x) {
  case 10:
    printf("10\n");
    break;
  case 12:
    printf("12\n");
    break;
  case 15:
    printf("15\n");
    break;
  case 20:
    printf("20\n");
    break;
  default:
    printf("Error\n");
    break;
}

case — это отдельные случаи проверки. break выходит из switch после выполнения кода в соответствующем case. default выполняется, если ни один из case не соответствует значению переменной.

Булевы переменные

Булевы переменные могут принимать значения true или false. Проверка булевой переменной может быть упрощена:

bool isHisCar = true;
if (isHisCar) { printf("Yes\n"); } // Эквивалентно if (isHisCar == true)
if (!isHisCar) { printf("No\n"); } // Эквивалентно if (isHisCar == false)

Выбор между if-else и switch зависит от задачи. if-else подходит для проверки различных условий, switch — для проверки одной переменной на равенство нескольким значениям.

Что будем искать? Например,программа