6. Операторы условия

Очень часто в процессе выполнения программы возникают ситуации, имеющие несколько решений.
В таком случае программа должна выбрать одно из решений.
Вот тут на помощь к нам приходят операторы условия.
При выполнении определённого условия мы можем позволить программе выбрать одно из решений, указанных в теле оператора.
Например, вы хотите, чтобы сердце персонажа стало биться чаще, если показатель здоровья меньше 20 процентов.
В этом случае мы должны проверить, действительно ли здоровье игрока меньше 20 процентов, и при положительном результате ускорить сердцебиение.

if

Конструкция if является одной из ключевых во многих языках, в том числе и в BGT.
Она позволяет выполнять фрагменты кода при выполнении условия.
BGT предлагает структуру if, которая аналогична такой же структуре языка C, C++ и т.д.
Посмотрите на следующий пример.
if(health < 21)
{
// играть звук сердцебиения
}
Компилятор проверяет, действительно ли переменная health меньше 21, и если это так, то выполнится код между фигурными скобками.
В противном случае этот код будет проигнорирован.
Ещё один пример.
if(health < 21)
{
// играть звук сердцебиения
}
else
{
// делать что-нибудь, если здоровье не меньше 21
}
В данном случае условие имеет две ветви.
Если здоровье игрока меньше 21, то будет выполнен код между первой парой фигурных скобок, а блок, следующий за оператором else будет проигнорирован.
Если же здоровье игрока не меньше 21, то будет выполнен код между второй парой фигурных скобок, а код, находящийся перед оператором else будет проигнорирован.
И ещё несколько примеров.
// простое условие с использованием фигурных скобок
if(health<21)
{
// играть звук сердцебиения
}

// простое условие без использования фигурных скобок
if(health<21)
// играть звук сердцебиения

// составное условие с использованием фигурных скобок
if(health<21)
{
// играть звук сердцебиения
alert("Внимание!", "Критический показатель здоровья."); //показ сообщения
}
else
{
// делать что-нибудь
}
Важно помнить, что в составных условиях всегда используются фигурные скобки для отделения одной ветви от другой.
Рекомендуется использовать фигурные скобки во всех видах условий.
Ниже предлагается список операций сравнения:

  • if(x == y) — true если x равно y. Для проверки используются переменные любого типа.
  • if (x != y) — true если x неравно y. Для проверки используются переменные любого типа.
  • if(x < y) — true если x меньше чем y. Для проверки используются переменные только числовых типов.
  • if(x <= y) — true если x меньше или равно y. Для проверки используются переменные только числовых типов.
  • if(x > y) — true если x больше чем y. Для проверки используются переменные только числового типа.
  • if(x >= y) — true если x больше или равно y. Для проверки используются переменные только числового типа.
  • if(!x) — true, если x false. Для проверки используются переменные типа bool.

Давайте рассмотрим следующий пример:
string my_name = "John Doe";
int age = random(5, 50);
string message_string = "Меня зовут " + my_name + ", Мне " + age + " лет и не забудьте это!";
alert("Важная информация", message_string);
А теперь добавим проверку возраста.
string my_name = "John Doe";
int age = random(5, 50);
string message_string = "Меня зовут " + my_name + ", Мне " + age + " лет и не забудьте это!";
if(age<18)
{
message_string += "Мне меньше 18 лет!";
}
else
{
message_string += "я совершеннолетний!";
}
alert("Важная информация", message_string);
Вышеуказанный пример действительно простой, но мы разберём всё по частям.
Сначала мы создаём строковые переменные my_name и message_string, а также целочисленную переменную age, в которую будет записываться случайное число от 5 до 50 с помощью функции random().
Далее мы проверяем age (возраст).
Если он меньше 18, тогда прибавляем к текстовому сообщению фразу «мне меньше 18 лет», а если возраст больше 18, тогда добавляем слова «я совершеннолетний».
Затем выводим сообщение на экран.
Конструкции if могут вкладываться друг в друга, главное, следить за правильностью вложений.

switch и case

switch и case являются заменой конструкции if и используются для составления более сложных условий.
Рассмотрим пример.
int health;
double energy;

switch(health)
{
case 100:
energy=100;
break;
case 90:
energy=89;
break;
case 80:
energy=78;
break;
case 70:
energy=67;
break;
case 60:
energy=56;
break;
...
}
Ключевое слово switch объявляет оператор условие, а внутри круглых скобок размещается значение (метка), Которую программа будет искать внутри тела условия.
Тело условия размещается внутри фигурных скобок.
Здесь может быть использовано множество операторов выбора case, так как это просто различные варианты условия, но работать будет тот, который равен определённому значению.
В паре с каждым оператором case используется оператор break для остановки проверки условия и выхода из него.
Если опустить этот оператор, то проверка условия будет продолжаться непрерывно, пока не достигнет конца тела условия.
Также в теле условия мы используем ключевое слово default, содержащее в себе значение, которое будет использовано, если никакое из предыдущих решений условия не подошло.
Давайте рассмотрим следующий пример:
switch(health)
{
case 100:
energy=100;
break;
case 90:
energy=89;
break;
case 80:
energy=78;
break;
default:
energy-=0.5;
}
Теперь, если здоровье игрока меньше 80 и продолжает уменьшаться, то энергия будет уменьшаться на 0.5.
Вы можете использовать оператор default в теле условия только один раз.
Конструкции case также могут вкладываться друг в друга.

Назад | Содержание | Вперёд

Поделитесь с друзьями

WordPress Lessons