6
Также можно опустить фигурные скобки. Это можно сделать только в том случае, если в качестве исполняемого кода будет указана лишь одна инструкция (или один оператор, в том числе другой оператор ветвления,
который уже может содержать любое количество инструкций)
Оператор else выполняется в том случае, если условие указанное в if
ложно. В таком случае будет проигнорирован код в блоке if, и программа сражу перейдет к выполнению кода в блоке else.
Данный оператор нужно прописывать после закрывающей фигурной скобки блока кода if или после единственной инструкции оператора if.
Общая структура условной конструкции if/else выглядит следующим образом:
if (выражение)
{
<выполняемый код>
}
else
{
<оператор2 (операторы2)>
}
Если результатом выражения является true (истина, любое ненулевое значение), то выполняться будет оператор1. Если же результатом выражения является false (ложь, 0), то выполняться будет оператор2.
Например:
1 |
#include <iostream> |
|
|
2 |
using namespace std; |
|
|
3 |
int main() |
|
|
4 |
{ |
|
|
5 |
cout << "Enter a number: "; |
|
|
6 |
int a; |
|
|
7
7 |
cin |
>> |
a; |
|
|
|
|
8 |
if (a |
> 15) |
|
|
|
|
|
9 |
|
cout << "Число " << a << " больше чем 15\n"; |
|
|
|
|
|
10 |
else |
|
|
|
|
|
|
11 |
|
cout << "Число " << a << " меньше чем 15\n"; |
|
|
|
|
|
12 |
return |
0; |
|
|
|
|
|
13 |
} |
|
|
|
|
|
|
Оператор if выполняет только одну операцию, если выражение
является true, и также только одну операцию else, если выражение — false.
Для того, чтобы выполнить несколько операций подряд, используется блок операторов, которые ограничены фигурными скобками {…}:
1 |
#include <iostream> |
|
|
|
|
2 |
using namespace std; |
|
|
|
|
3 |
int main() |
|
|
|
|
4 |
{ |
|
|
|
|
5 |
cout << "Enter a number: "; |
|
|
|
|
6 |
int a; |
|
|
|
|
7 |
cin >> a; |
|
|
|
|
8 |
if (a > 15) |
|
|
|
|
9 |
{ |
|
|
|
|
10 |
// Блок операторов ограничивается фигурными скобками |
|
{…} |
||
|
||
|
|
|
11 |
// Обе операции будут выполнены, если a > 15 |
|
|
|
|
12 |
cout << "Было введено число " << a << "\n"; |
|
|
|
|
13 |
cout << "Число " << a << " больше чем 15\n"; |
|
|
|
|
14 |
} |
|
|
|
|
15 |
else |
|
|
|
|
16 |
{ |
|
|
|
8
17 |
// Блок операторов ограничивается фигурными скобками |
|
{…} |
||
|
||
|
|
|
18 |
// Обе операции будут выполнены, если a <= 15 |
|
|
|
|
19 |
cout << "Было введено число " << a << "\n"; |
|
|
|
|
20 |
cout << "Число " << a << " меньше чем 15\n"; |
|
|
|
|
21 |
} |
|
|
|
|
22 |
return 0; |
|
|
|
|
23 |
} |
|
|
|
Если программист не указал скобки для блока операторов if или else,
то компилятор неявно сделает это за него.
Однако нередко надо обработать не два возможных альтернативных варианта, а гораздо больше. Например, в случае выше можно насчитать три условия: переменная x может быть больше 5, меньше 5 и равна 5. Для проверки альтернативных условий мы можем вводить выражения else if:
1 |
if(x > 5) |
|
|
2 |
{ |
|
|
3 |
cout << "x больше чем 5 \n"; |
|
|
4 |
} |
|
|
5 |
else if (x < 5) |
|
|
6 |
{ |
|
|
7 |
cout << "x меньше чем 5 \n"; |
|
|
8 |
} |
|
|
9 |
else |
|
|
10 |
{ |
|
|
11 |
cout << "x равно 5 \n"; |
|
|
12 |
} |
|
|
То есть в данном случае мы получаем три ветки развития событий в
программе.
9
switch – это множественный условный оператор. Он работает также как несколько условий if, но может проверять лишь одну переменную в своих условиях. Если одно условие является правильным происходит выход.
Для его использования не нужно подключать какие-то дополнительные библиотеки, кроме стандартной <iostream>.
1 switch (имя переменной) {…}
Для проверки условия нужно использовать конструкцию case:
1switch (имя переменной)
2{
3case <проверяемое значение>:
4//Блок кода
5break;
6}
После слова case используются : (двоеточие), а в самом ее конце
должен присутствовать оператор break.
|
|
Если мы хотим также обработать ситуацию, когда совпадения не будет |
|
найдено, то можно добавить блок default. |
|||
|
|
|
|
|
1 |
int x = 9; |
|
|
|
|
|
|
2 |
switch (x) { |
|
|
|
|
|
|
3 |
case 5: |
|
|
|
|
|
|
4 |
cout << "Значение равно 5"; |
|
|
|
|
|
|
5 |
break; |
|
|
|
|
|
|
6 |
case 6: |
|
|
|
|
|
|
7 |
cout << "Значение равно 6"; |
|
|
|
|
|
|
8 |
break; |
|
|
|
|
|
|
9 |
case 0: |
|
|
|
|
|
|
10 |
cout << "Значение равно zero"; |
|
|
|
|
|
|
11 |
break; |
|
|
|
|
|
10
12default:
13cout << "Значение не равно 5, 6 и даже 0";
14}
Если ни одно case и default не правильны, то программа выйдет из
switch и продолжит работать дальше.
2)Задание на лабораторную работу.
Обе части лабораторной работы должны быть выполнены либо на языке
программирования С++, либо на языке программирования C#.
|
Часть 1 |
||
В соответствии с вариантом необходимо написать консольную |
|||
программу. |
|
|
|
|
|
|
|
Варианты |
Индивидуальное задание |
||
|
|
|
|
1 |
Ввести целое число N. Выяснить, кратно ли оно трем. |
||
|
|
||
2 |
По заданным x, y составить программу вычисления значения z: |
||
|
= |
min( , ) + 0,5 |
|
|
|
|
|
|
1 + max2( , ) |
||
3 |
По заданным x, y составить программу вычисления значения z: |
||
|
max( , ) , при < 0 |
||
|
= {min( , ) , при ≥ 0 |
||
4 |
Даны действительные числа x, y. определить, принадлежит |
||
|
ли точка с координатами (х, y) заштрихованной части |
||
|
|
плоскости. |
|
|
|
||
5 |
Даны действительные числа x, y, z. Получить: |
||
|
|
|
|