double arrow

Правильный пример

Основные принципы работы оператора if.

Конструкция логического выбора if

Сейчас мы с вами познакомимся с оператором, который позволяет превратить обычную линейную программу в программу «мыслящую». Данный оператор позволяет проверить какое-то утверждение (выражение) на истинность и в зависимости от полученного результата произвести то или иное действие. Для начала рассмотрим общий синтаксис данного оператора:

if (утверждение или выражение) { действие 1; } else { действие 2; }

1. В качестве утверждения или выражения может выступать какая-либо конструкция, содержащая логические операторы или же арифметическое выражение.

• if(X>Y) – обычное утверждение, будет истинным, если X действительно больше Y

int X=10,Y=5; if(X>Y){ // истина cout<<"Test!!!";// на экране Test }

• if(A>B&&A<C) – комбинированное утверждение, состоящее из двух частей, будет истинно, если обе части будут верными

int A=10,B=5,C=12; if(A>B&&A<C){ // истина cout<<"A between B and C";// на экране A between B and C }

• if(A-B) – арифметическое выражение, будет истинным, если А не равно B, т. к. в противном случае (если они равны) их разность даст нуль, а нуль это ложь

int A=10,B=15; if(A-B){ // -5 это истина cout<<"A != В";// на экране A != В }

• if(++A) - арифметическое выражение, будет истинным, если А не равно -1, т. к. если А равно -1 увеличение на 1 даст нуль, а нуль это ложь

int A=0; if(++A){ // 1 это истина cout<<"Best test!!";// на экране Best test!! }

• if(A++) - арифметическое выражение, будет истинным, если А не равно 0, т. к. в данном случае используется постфиксная форма инкремента, сначала произойдет проверка условия и будет обнаружен нуль, а потом увеличение на единицу.

int A=0; if(A++){ // 0 это ложь cout<<"Best test!!";// эту фразу мы не увидим, т. к. if не выполнится }

• if(A==Z) - обычное утверждение, будет истинным, если A равно Z

• if(A=Z) – операция присваивания, выражение будет истинным, если Z не равно нулю

Примечание: Типичная ошибка. Очень часто вместо операции проверки на равенство ==, по невнимательности указывается операция присваивания =, и смысл выражения может радикально измениться. Такая банальная опечатка может привести к некорректной работе всей программы. Рассмотрим два казалось бы идентичных примера.

# include <iostream> using namespace std; void main(){   int A,B; //объявляем две переменные   //просим пользователя ввести в них данные cout<<"Enter first digit:\n"; cin>>A; cout<<"Enter second digit:\n"; cin>>B;   if(B==0){ // если B содержит ноль cout<<"You can’t divide by zero!!!";// сообщаем об ошибке } else{ // в противном случае cout<<"Result A/B="<<A<<"/"<<B<<"="<<A/B;// выдаем результат деления А на B } cout<<"\n The end. \n"; // конец }

Сейчас читают про: