Программа если то иначе

В некоторых источниках говорится, что оператор выбора if else — самостоятельный оператор. Но это не так, if else — это всего лишь форма записи оператора выбора if . Оператор if else позволяет определить программисту действие, когда условие истинно и альтернативное действие, когда условие ложно. Тогда как if позволял определить действие при истинном условии.

Синтаксис записи оператора выбора if else :

if (/*проверяемое условие*/) < /*тело оператора выбора 1*/; >else < /*тело оператора выбора 2*/; >

Читается так: «Если проверяемое условие истинно, то выполняется тело оператора выбора 1, иначе (то есть проверяемое условие ложно) выполняется тело оператора выбора 2«. Обратите внимание на то, как записан оператор if else . Слово else специально сдвинуто вправо для того чтобы программный код был понятен и его было удобно читать.

Рассмотрим задачу с предыдущей темы, с использованием if else . Напомню условие задачи: «Даны два числа, необходимо их сравнить».

// if_else.cpp: определяет точку входа для консольного приложения. #include «stdafx.h» #include using namespace std; int main(int argc, char* argv[]) < int a, b; cout > a; cout > b; if ( a >= b) // если a больше либо равно b, то < cout = » else // иначе < cout << a << » <= » system(«pause»); return 0; >

В данном коде нас интересуют строки 14-20 . Эти строки читаются так: если a (первое число) больше либо равно b (второе число), то выполнить оператор вывода в строке 16

Функция ЕСЛИ в Excel с несколькими условиями (IF) и функция из Excel 2016 ЕСЛИМН (IFS)


cout = »

иначе выполнить оператор вывода в строке 19

cout
cout

А вот так сработала программа (см. Рисунок 1).

CppStudio.com

Vvedite pervoe chislo: 15 Vvedite vtoroe chislo: -4 15 >= -4 Для продолжения нажмите любую клавишу . . .

Рисунок 1 — Оператор выбора if else

Покажу еще один пример использования операторов выбора if else (так называемые вложенные операторы if else для множественного выбора).

Условие задачи:
Составить алгоритм находящий значение y, если у=х, при х=30;
// inif_else.cpp: определяет точку входа для консольного приложения. #include «stdafx.h» #include using namespace std; int main(int argc, char* argv[]) < int x, y; cout > x; if (x < 0) < y = x; // выполняется, если х меньше нуля >else < if ( (x >= 0) (x < 30) ) < y = 0; // выполняется, если х больше либо равно нуля и меньше 30 >else < if (x >= 30) < y = x * x; // выполняется, если х больше либо равен 30 >> > cout

Читайте также:
Комп долго открывает программы

В данной задаче возможны три случая:
1-й случай: х < 0 ;
2-й случай: х лежит в пределах от 0 (включая 0) до 30;
3-й случай: х больше или равен 30.

Разбор частного случая:

Допустим, пользователь ввел число 31. Начиная со строки 12, выполняется проверка условий. Читается так: «Если х (31 в нашем случае) < 0, то выполнить оператор в строке 14». Но так как 31 > 0 условие ложно мы переходим к слову else (иначе) строка 15. Дальше проверяем, входит ли число 31 в заданный интервал.

23 Функция ЕСЛИ в Excel (IF)

Читается так: если х>=0 и х то выполнить оператор в строке 19 . Но так как число 31 не входит в заданный интервал, то условие ложно. Подробно строка 17: программа сначала проверит первое простое условие х >= 0 – оно истинно, а если первое истинно, то программа перейдет к проверке второго простого условия х < 30 – оно ложно.

Следовательно всё составное условие ложно, ведь в составном условии у нас используется логическая операция , а это значит, что все составное условие истинно только в том случае, когда истинны оба простых условия. Переходим к else (иначе ), здесь у нас последний if , (строка 22).

Выполняется проверка х >= 30 . Читается так: Если х >= 30 то выполнить оператор, находящийся в строке 24 . Наконец-то условие истинно, итак выполнился оператор в строке 24. И строка 28 печатает получившееся значение. Ну, все, рассмотрели программу по мельчайшим деталям. Результат работы программы, в случае, если пользователь ввел число 31 (см. Рисунок 2)

CppStudio.com

Vvedite x: 31 y=961 Для продолжения нажмите любую клавишу . . .

Рисунок 2 — Оператор выбора if else

Источник: cppstudio.com

Оператор if-else (C++)

Оператор if-else управляет условным ветвлением. Операторы в выполняются только в if-branch том случае, если condition вычисляется как ненулевое значение (или true ). Если значение не равно нулю condition , выполняется следующая инструкция, а оператор, следующий за необязательным else , пропускается. В противном случае следующая инструкция пропускается, а если есть else оператор , то выполняется оператор, следующий за else .

condition Выражения, которые оцениваются как ненулевое:

  • true
  • указатель, отличный от NULL,
  • любое арифметическое значение, отличное от нуля, или
  • тип класса, определяющий однозначное преобразование в арифметический, логический тип или тип указателя. (Сведения о преобразованиях см. в разделе Стандартные преобразования.)
Читайте также:
При компьютерном моделировании моделью является компьютерная программа

Синтаксис

init-statement :
expression-statement
simple-declaration

condition :
expression
attribute-specifier-seq Выбрать decl-specifier-seq declarator brace-or-equal-initializer

statement :
expression-statement
compound-statement

expression-statement :
expression Выбрать ;

compound-statement :
statement-seq Выбрать >

selection-statement :
if constexpr opt 17 ( init-statement opt 17 condition ) if-branch
if constexpr opt 17 ( init-statement opt 17 condition ) if-branch else else-branch

17 Этот необязательный элемент доступен начиная с C++17.

Операторы if-else

Во всех формах if оператора condition вычисляется значение , которое может иметь любое значение, кроме структуры, включая все побочные эффекты. Элемент управления передается от if оператора к следующему оператору в программе, если не выполняется if-branch или else-branch не содержит break , continue или goto .

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

Пример

В этом примере кода показано несколько if операторов, используемых как с , так и без else :

// if_else_statement.cpp #include using namespace std; class C < public: void do_something()<>>; void init(C)<> bool is_true() < return true; >int x = 10; int main() < if (is_true()) < cout else < cout // no else statement if (x == 10) < x = 0; >C* c; init(c); if (c) < c->do_something(); > else < cout >

Оператор if с инициализатором

Начиная с C++17 инструкция if может также содержать init-statement выражение, которое объявляет и инициализирует именованную переменную. Используйте эту форму оператора if, если переменная требуется только в область оператора if. Для майкрософт: эта форма доступна начиная с Visual Studio 2017 версии 15.3 и требует по крайней мере параметра компилятора /std:c++17 .

Пример

#include #include #include #include #include using namespace std; map m; mutex mx; bool shared_flag; // guarded by mx void unsafe_operation() <> int main() < if (auto it = m.find(10); it != m.end()) < cout second; return 0; > if (char buf[10]; fgets(buf, 10, stdin)) < m[0] += buf; >if (lock_guard lock(mx); shared_flag) < unsafe_operation(); shared_flag = false; >string s< «if» >; if (auto keywords = < «if», «for», «while» >; any_of(keywords.begin(), keywords.end(), [ return s == kw; >)) < cout >

Операторы if constexpr

Начиная с C++17, вы можете использовать if constexpr оператор в шаблонах функций, чтобы принимать решения о ветвлениях во время компиляции, не прибегая к нескольким перегрузкам функций. Для майкрософт: эта форма доступна начиная с Visual Studio 2017 версии 15.3 и требует по крайней мере параметра компилятора /std:c++17 .

Читайте также:
Как запустить 2 программы в visual

Пример

В этом примере показано, как написать одну функцию, которая обрабатывает распаковку параметров. Перегрузка с нулевыми параметрами не требуется:

template void f(T t, Rest. r) < // handle t do_something(t); // handle r conditionally if constexpr (sizeof. (r)) < f(r. ); >else < g(r. ); >>

Источник: learn.microsoft.com

infoegehelp.ru

Ниже на рисунках представлены блок-схемы, описывающие этот оператор.

блок-схема оператора ветвления

блок-схема оператора ветвления

Синтакис описания оператора на различных языках программирования:

ПаскальАлгоритмическийБейсикСи
if условие then
begin
операторы;
end
else
begin
операторы;
end
если условие
то
операторы
иначе
операторы
все
IF условие THEN
операторы
ELSE
операторы
END IF
if(условие) операторы;
>
else операторы;
>

Используем оператор «если» в программе, которая определяет равны ли числа и выводит результат.

ПаскальАлгоритмическийБейсикСи
var a,b:integer;
begin
read(a,b);
if a=b then
writeln(‘ravni’)
else
writeln(‘ne ravni’)
end.
алг
нач
цел a,b
ввод a,b
если a=b
то вывод ‘ravni’
иначе вывод ‘ne ravni’
все
кон
DIM a,b AS INTEGER
INPUT a
INPUT b
IF a=b THEN
PRINT «ravni»
ELSE PRINT «ne ravni»
END IF
END
#include
#include
void main()
int a,b;
scanf(«%d%d»,b);
if (a==b)
printf(«ravni»);
else printf(«ne ravni»);
getch();
>

2.Оператор ветвления «выбор» или «выбор-иначе».

Ниже на рисунках представлены блок-схемы, описывающие этот оператор.

блок-схема оператора ветвления

блок-схема оператора ветвления

Синтакис описания оператора на различных языках программирования:

Используем оператор «выбор» в программе, которая по введенному номеру выводит название дня недели.

ПаскальАлгоритмическийБейсикСи
var a:integer;
begin
read(a);
case a of
1:writeln(‘ponedelnik’);
2:writeln(‘vtornik’);
3:writeln(‘sreda’);
4:writeln(‘chetverg’);
5:writeln(‘pyatnica’);
6:writeln(‘subbota’);
6:writeln(‘voskresenie’);
else
writeln(‘dnya nedeli s takim nomerom net’);
end;
end.
алг
нач
цел a
ввод a
выбор
при a=1: вывод ‘ponedelnik’
при a=2: вывод ‘vtornik’
при a=3: вывод ‘sreda’
при a=4: вывод ‘chetverg’
при a=5: вывод ‘pyatnica’
при a=6: вывод ‘subbota’
при a=7: вывод ‘voskresenie’
иначе
вывод ‘dnya nedeli s takim nomerom net’
все
DIM a AS INTEGER
INPUT a
SELECT CASE a
CASE 1: PRINT «ponedelnik»
CASE 2: PRINT «vtornik»
CASE 3: PRINT «sreda»
CASE 4: PRINT «chetverg»
CASE 5: PRINT «pyatnica»
CASE 6: PRINT «subbota»
CASE 7: PRINT «voskresenie»
CASE ELSE
PRINT dnya nedeli s takim nomerom net
END SELECT
END
#include
#include
void main()
int a;
scanf(«%d»,
switch(a) 1:printf(«ponedelnik»);break;
2:printf(«vtornik»);break;
3:printf(«sreda»);break;
4:printf(«chetverg»);break;
5:printf(«pyatnica»);break;
6:printf(«subbota»);break;
7:printf(«voskresenie»);break;
default: printf(«dnya nedeli s takim nomerom net»);
>
getch();
>

Перейти к разбору задач на работу операторов ветвления из демо ЕГЭ:

Источник: infoegehelp.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru