Кое-что о программировании
eng   рус

Условные операторы: if...else if...else, switch

Previous tutorial: Операторы в C++

Представим ситуацию в игре: персонаж под управлением искусственного интеллекта решает что делать, он может атаковать игрока или он может сбежать, и это зависит от здоровья персонажа. Давайте создадим переменную, которая будет контролировать здоровье врага:

int enemyHealth = 100;

Теперь нам нужно решить что делать. Для этого мы можем использовать условия (операторы ветвления). Условия есть во всех языках программирования, в том числе и в C++.

Выражение if в C++

Создадим условие: если здоровье врага больше 50, то он атакует игрока (здоровье игрока уменьшается):

int enemyHealth = 100; int playerHealth = 100; if (enemyHealth > 50) { playerHealth -= 10; }

Выражение if состоит из ключевого слова if (если), затем в круглых скобках пишется условие, а затем в фигурные скобки помещается код, который будет выполнен если условие истинно. Условие всегда булево значение: может быть только true или false.

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

else

Выражение if может иметь дополнительные блоки. Один из них: else (иначе, в противном случае). Данный блок выполняется если условие всех предыдущих блоков ложно:

int enemyHealth = 100; int playerHealth = 100; if (enemyHealth > 50) { playerHealth -= 10; } else { enemyHealth += 10; }

Если здоровье врага меньше 50 (условие ложно), то выполняется блок else. В данном случае мы увеличиваем здоровье врага (представим, что он находит аптечку).

Это очень простой случай, мы знаем что здоровье всегда 100 и мы можем написать что делать сразу после инициализации. Но когда наши программы станут больше, мы не сможем сказать какое значение у здоровья в данный момент времени. Когда мы научимся как работать с функциями в C++, мы сможем построить более интересные примеры.

else if

Условие if может иметь несколько блоков else if (в противном случае, если). Они используются, если нужны дополнительные условия:

if (enemyHealth > 80) { playerHealth -= 10; } else if (enemyHealth > 50 { // действие 1 } else if (enemyHelath > 20) { // действие 2 } else { enemyHealth += 10; }

Полное условие выглядит так: если здоровье больше 80, мы уменьшаем здоровье игрока. Если это не так (здоровье меньше 80), мы проверяем следующий блок: если здоровье больше 50. Если это так (здоровье между 50 и 80) мы вуполняем действие 1, в противном случае проверяем следующее условие: если здоровье больше 20. Если ни одно из условий не выполняется, то происходит переход к блоку else. Он будет выполнен если здоровье меньше 20.

Весь этот код принадлежит к одному оператору if. Только один блок данного оператора будет выполнен.

Выражение switch в С++

В C++ есть ещё один условный оператор - switch (переключатель). Он используется в ситуациях, когда известно какие значения может принимать условие. Например, давайте прочитаем ввод пользователя и проверим, какую клавишу он нажал:

char i; cin >> i; switch (i) { case 'i': cout << "Открыть инвентарь" << endl; break; case 'm': cout << "Открыть карту" << endl; break; default: cout << "Ошибка ввода" << endl; }

Вначале мы помещаем ключевое слово switch. Затем, пишем в круглых скобках переменную, которую нужно проверить. После этого идёт тело switch в фигурных скобках. Тело switch состоит из проверок отдельных значений переменной (case - пример, ситуация, вариант). Обратите внимание, что после каждой проверки мы помещаем break. Этот оператор пропускает проверку остальных вариантов. Также есть вариант default - он выполняется если все остальные блоки ложны.

Вывод

Условия - одна из главных частей любого языка, включая C++. В C++ есть два условных оператора: if...else if...else и switch. Мы можем пользоваться только операторм if, но иногда switch бывает более удобен.

Комментарии:

No comments yet