Условные выражения в си

Обновлено: 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 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14

Результат выполнения

Оператор if может быть вложенным.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Результат выполнения


При использовании вложенной формы оператора if опция else связывается с последним оператором if . Если требуется связать опцию else с предыдущим оператором if , внутренний условный оператор заключается в фигурные скобки:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Результат выполнения



Логические операции в условных операторах

Условный оператор может проверять

  • одновременное выполнение всех условий (операция И - && )
  • выполнение хотя бы одного из условий (операция ИЛИ - || )
  • выполнение только одного из условий (операция исключающее ИЛИ - ^ )

Пример на Си : Найти максимум из 3 чисел

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Пример на С++ : Найти максимум из 3 чисел

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Тернарные операции

Тернарная условная операция имеет 3 аргумента и возвращает свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом. Синтаксис тернарной операции в языке Си

Условие ? Выражение1 : Выражение2;

Если выполняется Условие , то тернарная операция возвращает Выражение1 , в противном случае - Выражение2 .

Тернарные операции, как и операции условия, могут быть вложенными. Для разделения вложенных операций используются круглые скобки.

Приведенный выше пример с использованием тернарных операций можно представить в виде

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Оператор ветвления switch (оператор множественного выбора)

Оператор if позволяет осуществить выбор только между двумя вариантами. Для того, чтобы производить выбор одного из нескольких вариантов необходимо использовать вложенный оператор if . С этой же целью можно использовать оператор ветвления switch .

Общая форма записи

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. Вот мой код: 1
2
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" );
>
>

Читайте также: