Инструкция if
Инструкция if позволяет сделать выбор между двумя выполняемыми ветвями программы.
Полный формат ее записи таков.
if(выражение) инструкция;
else инструкция;
Здесь под элементом инструкция понимается одна инструкция языка C++. Часть else необязательна. Вместо элемента инструкция может быть использован блок инструкций. этом случае формат записи if-инструкции принимает такой вид.
if(выражение)
{
последовательность инструкций
}
else
{
последовательность инструкций
}
Если элемент выражение, который представляет собой условное выражение, при вычислении даст значение ИСТИНА, будет выполнена if-инструкция; в противном случае else-инструкция (если таковая существует). Обе инструкции никогда не выполняются. Условное выражение, управляющее выполнением if-инструкции, может иметь любой тип, действительный для С++-выражений, но главное; чтобы результат его вычисления можно было интерпретировать как значение ИСТИНА или ЛОЖЬ.
// Программа "Угадай магическое число".
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int magic; // магическое число
int guess; // вариант пользователя
magic = rand(); // Получаем случайное число.
cout << "Введите свой вариант магического числа: ";
cin >> guess;
if(guess == magic) cout << "** Правильно **";
return 0;
}
В этой программе для проверки того, совпадает ли с "магическим числом" вариант,
предложенный пользователем, используется оператор отношения "==". При совпадении
чисел на экран выводится сообщение ** Правильно **.
Конструкция if-else-if
Очень распространенной в программировании конструкцией, в основе которой лежит вложенная if-инструкция, является "лестница" if-else-if. Ее можно представить в следующем виде.
if(условие)
инструкция;
else if(условие)
инструкция;
else if(условие)
инструкция;
.
.
.
else
инструкция;
Здесь под элементом условие понимается условное выражение. Условные выражения вычисляются сверху вниз. Как только в какой-нибудь ветви обнаружится истинный результат, будет выполнена инструкция, связанная с этой ветвью, а вся остальная "лестница" опускается.
Если окажется, что ни одно из условий не является истинным, будет выполнена последняя else-инструкция (можно считать, что она выполняет роль условия, которое действует по умолчанию). Если последняя else-инструкция не задана, а все остальные оказались ложными, то вообще никакое действие не будет выполнено.
int main()
{
int x = 3;
if(x==1) cout << "x равен единице.\n";
else if(x==2) cout << "x равен двум.\n";
else if(x==3) cout<< "x равен трем.\n"; // Это сработает!
else if(x==4) cout << "x равен четырем.\n";
else cout << "x не попадает в диапазон от 1 до 4.\n";
return 0;
}
Инструкция switch
Инструкция switch — это инструкция многонаправленного ветвления, которая позволяет выбрать одну из множества альтернатив.
Согласно стандарту C++ switch-конструкция может иметь не более 16 384 caseинструкций. Но на практике (исходя из соображений эффективности) обычно ограничиваются гораздо меньшим их количеством.
Использование switch-инструкции демонстрируется в следующей программе. Она создает простую "справочную" систему, которая описывает назначение for-, if- и switchинструкций. После отображения списка предлагаемых тем, по которым возможно предоставление справки, программа переходит в режим ожидания до тех пор, пока пользователь не сделает свой выбор. Введенное пользователем значение используется в инструкции switch для отображения информация по указанной теме. (Вы могли бы в качестве упражнения дополнить информацию по имеющимся темам, а также ввести в эту "справочную" систему новые темы.)
switch(выражение) {
case константа1:
последовательность инструкций
break;
case константа2:
последовательность инструкци
break;
case константа3:
последовательность инструкций
break;
.
.
.
default:
последовательность инструкций
}
// Демонстрация switch-инструкции на примере простой
"справочной" системы.
#include <iostream>
using namespace std;
int main()
{
int choice;
cout << "Справка по темам:\n\n";
cout << "1. for\n";
cout << "2. if\n";
cout << "3. switch\n\n";
cout << "Введите номер темы (1-3): ";
cin >> choice;
cout << "\n";
switch(choice) {
case 1:
cout << "for - это самый универсальный цикл в С++.\n";
break;
case 2:
cout << "if - это инструкция условного ветвления.\n";
break;
case 3:
cout <<"switch - это инструкция многонаправленного
ветвления.\n";
break;
default:
cout << "Вы должны ввести число от 1 до З.\n";
}
return 0;
}
Вот один из вариантов выполнения этой программы.
Справка по темам:
1. for
2. if
3. switch
if - это инструкция условного ветвления. Формально инструкция break необязательна, хотя в большинстве случаев использования switch-конструкций она присутствует. Инструкция break, (Что такое break смотрите в разделе выбор темы) стоящая в последовательности инструкций любой case-ветви, приводит к выходу из всей switch-конструкции и передает управление инструкции, расположенной сразу после нее. Но если инструкция break в caseветви отсутствует, будут выполнены все инструкции, связанные с данной case-ветвью, а также все последующие инструкции, расположенные под ней, до тех пор, пока все-таки не встретится инструкция break, относящаяся к одной из последующих case-ветвей, или не будет достигнут конец switch-конструкции.
Рассмотрим внимательно следующую программу. Попробуйте предугадать, что будет отображено на экране при ее выполнении.
#include <iostream>
using namespace std;
int main()
{
int i;
for(i = 0; i < 5; i++) {
switch(i) {
case 0: cout << "меньше 1\n";
case 1: cout << "меньше 2\n";
case 2: cout << "меньше 3\n";
case 3: cout << "меньше 4\n";
case 4: cout << "меньше 5\n";
}
cout << ' \n';
}
return 0;
}
Вот как выглядят результаты выполнения этой программы.
меньше 1
меньше 2
меньше 3
меньше 4
меньше 5
меньше 2
меньше 3
меньше 4
меньше 5
меньше 3
меньше 4
меньше 5
меньше 4
меньше 5
меньше 5
Как видно по результатам, если инструкция break в одной case-ветви отсутствует, выполняются инструкции, относящиеся к следующей case-ветви. Как показано в следующем примере, в switch-конструкцию можно включать "пустые" case-ветви
Не стоит бояться switch - это очень простая, а так же очень удобная инструкция!
Не будем медлить сделаем пару задач!
Домашнее задание 1:
С помощью if сравнить Не сколько переменных между собой И если например x == y то вывести - это на экран с помощью cout! (Что такое cout смотрите в разделе Hello World на C++)
Домашнее задание 2:
Создайте 5 переменных! Попробуйте их между собой сравнить с помощью case 1: case 2: .... (в switch)