Условные выражения в си
Обновлено: 22.11.2024
Признаком разветвляющегося алгоритма является наличие операций проверки условия. Чаще всего для проверки условия используется условный оператор if .
Условный оператор if
Условный оператор if может использоваться в форме полной или неполной развилки.
if (Условие)БлокОпераций1;
>
1
2
3
4
5
6
7
8 if (Условие)
БлокОпераций1;
>
else
БлокОпераций2;
>
В случае неполной развилки если Условие истинно, то БлокОпераций1 выполняется, если Условие ложно, то БлокОпераций1 не выполняется.
В случае полной развилки если Условие истинно, то выполняется БлокОпераций1 , иначе выполняется БлокОпераций2 .
БлокОпераций может состоять из одной операции. В этом случае наличие фигурных скобок, ограничивающих блок, необязательно.
Основными операциями, проверяемыми внутри условного блока, являются операции отношения.
Пример на C :
2
3
4
5
6
7
8
9
10
11
12
13
14
Результат выполнения
Оператор if может быть вложенным.
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Результат выполнения
При использовании вложенной формы оператора if опция else связывается с последним оператором if . Если требуется связать опцию else с предыдущим оператором if , внутренний условный оператор заключается в фигурные скобки:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Результат выполнения
Логические операции в условных операторах
Условный оператор может проверять
- одновременное выполнение всех условий (операция И - && )
- выполнение хотя бы одного из условий (операция ИЛИ - || )
- выполнение только одного из условий (операция исключающее ИЛИ - ^ )
Пример на Си : Найти максимум из 3 чисел
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Пример на С++ : Найти максимум из 3 чисел
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Тернарные операции
Тернарная условная операция имеет 3 аргумента и возвращает свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом. Синтаксис тернарной операции в языке Си
Если выполняется Условие , то тернарная операция возвращает Выражение1 , в противном случае - Выражение2 .
Тернарные операции, как и операции условия, могут быть вложенными. Для разделения вложенных операций используются круглые скобки.
Приведенный выше пример с использованием тернарных операций можно представить в виде
12
3
4
5
6
7
8
9
10
11
12
13
14
15
Оператор ветвления switch (оператор множественного выбора)
Оператор if позволяет осуществить выбор только между двумя вариантами. Для того, чтобы производить выбор одного из нескольких вариантов необходимо использовать вложенный оператор if . С этой же целью можно использовать оператор ветвления switch .
Общая форма записи
case Константа1: БлокОпераций1;
break ;
case Константа2: БлокОпераций2;
break ;
. . .
case Константаn: БлокОперацийn;
break ;
default: БлокОперацийПоУмолчанию;
break ;
>
Оператор ветвления switch выполняется следующим образом:
- вычисляется ЦелоеВыражение в скобках оператора switch ;
- полученное значение сравнивается с метками ( Константами ) в опциях case , сравнение производится до тех пор, пока не будет найдена метка, соответствующая вычисленному значению целочисленного выражения;
- выполняется БлокОпераций соответствующей метки case ;
- если соответствующая метка не найдена, то выполнится БлокОперацийПоУмолчанию , описанный в опции default .
Альтернатива default может отсутствовать, тогда не будет произведено никаких действий.
Опция break; осуществляет выход из оператора switch и переход к следующему за ним оператору. При отсутствии опции break будут выполняться все операторы, начиная с помеченного данной меткой и кончая оператором в опции default .
Константы в опциях case должны быть целого типа (могут быть символами).
Diana Здравствуйте Елена, помогите пожалуйста с заданием. (Все остальные условия задания я выполнила) Сделать проверку на возможные некорректные значения времени, переданные в функцию: а) Проверка что минуты не больше 59. Вот мой код: 12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
return 0;
>
void amPm ( float hour)
if (hour < 00.00 || hour > 23.00)
printf( "Error! Wrong hour \n" );
return ;
>
if (hour < 12.00)
printf( "Appropriate time has been introduced am \n" );
return ;
>
else
printf( "Appropriate time has been introduced pm\n" );
>
>
Читайте также: