9d644aa122c76a202dcf4fb2b565c40f87b7143f программирование с нуля самоучитель,самоучитель по программированию - Оператор выбора if
Рейтинг:   / 2
ПлохоОтлично 

Оператор выбора if

В языке программирования С++ существует два оператора выбора:
1)Оператор выбора if
2) Оператор выбора switch

Операторы выбора позволяют принять программе решение, основываясь на истинности или ложности условия. Если условие истинно (т. е. равно true) значит, оператор в теле if выполняется, после чего выполняется следующий по порядку оператор. Если условие ложно (т. е. равно false) значит, оператор в теле if не выполняется (игнорируется или пропускается) и сразу же выполняется следующий по порядку оператор. Проверяемое условие может быть любым логическим выражением. Логические выражения могут быть образованы операциями равенства и отношения (см. Таблица 1).

Таблица 1 — Логические выражения C++
Операция в С++УсловиеСмысл записанных условий в С++
== a == b a равно b
!= != b a не равно b
> > b a больше b
< < b a меньше b
>= >= b a больше или равно b
<= <= b a меньше или равно b

Очень частой ошибкой программирования является неправильная запись операций равенства и соотношений. Пробелов между знаками ==!=>=<=; быть не должно. Также необходимо помнить правильную последовательность записи символов операций равенства и отношений.
Пример:
=! не правильно;           != правильная запись;
=> не правильно;           >= правильная запись;
=< не правильно;           <= правильная запись.
Нельзя путать операцию = (операция присваивания) и операцию == (операция равенства) так как это приводит к логическим ошибкам, т. е. программа даже скомпилируется без всяких ошибок, но работать будет не правильно.
Условный оператор или оператор выбора if записывается в двух формах, рассмотрим первую.

1
2
3
4
if (/*проверяемое условие*/)
{
//тело условного оператора
}

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

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

Чтобы в будущем не путаться рекомендую всегда прописывать фигурные скобочки, так код будет более понятен.
Рассмотрим простейший пример использования оператора if. Условие задачи: даны два числа, необходимо их сравнить.

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
// in_out.cpp: определяет точку входа для консольного приложения.
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{
 int a, b; // объявление переменных типа int, то есть в таких переменных хранятся только целые числа
 cout << "Vvedite pervoe chislo: ";
 cin >> a;
 cout << "Vvedite vtoroe chislo: ";
 cin >> b;
   if (a > b)                    // если а > b
   {
      cout << a << " > " << b << endl; // печатать данное сообщение
   }
   if (a < b)// если а < b
   {
      cout << a << " < " << b << endl;
   }
   if (a == b) // если а = b
     cout << a << " = " << b << endl; // в теле условного оператора опущены фигурные скобочки
 system("pause");
 return 0;
}

Все с 1-й по 8-ю строки вам должно быть понятно. В строке 9 объявляются две переменные – это мы уже знаем. Но появилось новое слово int –это целочисленный тип данных. То есть может содержать такие числа: -32678;-341. Целочисленный тип данных может хранить только целые числа. После того как мы ввели два числа программа начинает их сравнивание. Так как мы не знаем, какие числа введет пользователь, мы должны предусмотреть все случаи. А случая здесь может быть аж три:

1-й случай: первое введенное число больше второго. (14-16 строки)
Читается так: «Если а больше b, то делать соответствующий вывод на экран»
2-й случай: первое введенное число меньше второго. (17-19 строки)
Читается так: «Если, а меньше b, то делать соответствующий вывод на экран»
3-й случай: первое введенное число равняется второму. (20-21 строки)
Читается так: «Если, а равно b, то делать соответствующий вывод на экран»

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

1
2
if (a == b); // логическая ОШИБКА
cout << a << " = " << b << endl;

В этом случае программ скомпилируется и запустится, но уже будет работать не правильно. Ошибка заключается в том, что у данного ифа уже нет оператора входящего в его тело, то есть if пустой. И уже неважно истинно условие или нет оператор вывода cout << a << " = " << b << endl; будет срабатывать всегда.

 

   
© программирование с нуля самоучитель | самоучитель по программированию | самоучитель по программированию с нуля | курсы программирования | курсы программирования с нуля