Условный оператор if

Составной оператор

К составным операторам относятся собственно составные операторы и блоки.

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

Формат оператора:

{

оператор1;

оператор2;

...

операторN;

}

Блок отличается тем, что в его состав входят описания каких-либо объектов программы. Например:

{// Это составной оператор n ++; S += n; } {// Это блок int n = 0; n ++; S += n; }

Блоки, чаще всего, используются в качестве тела функции. Составной оператор используется в любом случае, когда несколько операторов следует объединить в один. Это необходимо в условных операторах и операторах цикла, согласно синтаксису которых, исполнимым является только один оператор. Чаще всего, составной оператор формирует ветвь условного оператора или тело цикла в операторах цикла.

3.3. Условная операция (?:)

Эта операция тернарная, то есть имеет три операнда.

Формат операции:

операнд_1 ? операнд_2 : операнд_3

Первый операнд может иметь арифметический тип или быть указателем. Он оценивается с точки зрения его эквивалентности нулю (операнд, равный нулю, рассматривается как false, не равный нулю – как true). Если результат вычисления операнда 1 равен true, то результатом условной операции будет значение второго операнда, иначе – третьего операнда. Вычисляется всегда либо второй операнд, либо третий. Их тип может различаться. Условная операция является сокращенной формой условного оператора if.

Пример:Вывести на экран минимальное из двух значений.

#include <stdio.h>

int main ( )

{

inta = 10, b = 5, min;

min = (b < a) ? b : a ;

printf(“Наименьшее число: %d”, min);

return 0;

}

Результат работы программы:

Наибольшее число: 5

Другой пример применения условной операции. Требуется, чтобы некоторая целая величина увеличивалась на 1, если ее значение не превышает n, а иначе принимала значение 1:

i = (i < n) ? i + 1:1;

Предназначен для выбора к исполнению одного из двух возможных операторов в зависимости от выполнения некоторого условия.

Формат оператора:

if(условие)оператор 1; else оператор 2;

Инструкция выполняется следующим образом:

1. Вычисляется значение условия (выражения), которое может иметь арифметический тип или тип указателя.

2. Если значение выражения (условия) не равно нулю (имеет значениеtrue), выполняется первый оператор, следующий за условием. Если значение выражения (условия) равно false, то выполняются инструкции, следующие за словом else.

Довольно часто в случае ложности условия не нужно производить никаких действий. Допускается использование краткой формы условного оператора:

if (условие) оператор;

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

Если после условия или служебного слова else требуется выполнить несколько операторов, то их оформляют в виде составного.

Структура называется вложенной, если после условия или служебного слова else используются вновь условные операторы. Число вложений может быть произвольным. При этом справедливо следующее правило: служебное слово else всегда относится к ближайшему if.


Таблица 5. Графическая интерпретация условного оператора.

Неполная форма записи Полная форма записи
если-то   если-то-иначе  
       

Пример.Cоставить программу нахождения минимального из трех чисел, введенных с клавиатуры.

1 вариант решения: 2 вариант решения:
 
 


 

Программа на С++
//min_of_3_numbers; #include <conio.h> #include <iostream> using namespace std;   int main() { setlocale(LC_ALL,"Rus"); int a, b, c, max; cout<<"\nВведите 3 числа через пробел: "; cin>>a>>b>>c; if (a < b) if (a < c) max = a; // случай, когда a < b else max = c; else if (b < c) max = b; // случай, когда a >= b else max = c; cout<<"Минимальное число = "<< max; _getch(); return 0; } //min_of_3_numbers; #include <conio.h> #include <iostream> using namespace std;   int main() { setlocale(LC_ALL,"Rus"); int a, b, c, max; cout<<"\nВведите 3 числа через пробел: "; cin>>a>>b>>c; max = a; if (b < max) max = b; if (c < max) max = c; cout<<"Минимальное число = "<<max; _getch(); return 0; }