Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Философия программирования на C++ Выпуск 11. Условия


Всем доброго дня!

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

Например, с помощью условий мы можем спросить у пользователя, что он хочет сделать: сложить, вычесть, умножить или поделить два числа. Как мы определим, что именно он хочет? Приведу сразу код такой программы:

#include <iostream>

using namespace std;

int main() {
    int a = 0;  // Это будет первое число
    int b = 0;  // Это будет второе число
    int action = 0;  // С помощью этой переменной мы сможем узнать, что хочет пользователь
    // Сначала выведем пользователю подсказку, что нужно делать:
    cout << "1. + Sum" << endl;  // 1 - сложить
    cout << "2. * Multiply" << endl;  // 2 - умножить
    cout << "3. / Divide"
<< endl;  // 3 - разделить
    cout << "4. - Sub" 
<< endl;  // 4 - вычесть
    cout << "Please, enter your action: ";  // Просим пользователя
ввести соответствующее число
    cin >> action;  // Получаем от пользователя введенное им число
    cout << "Enter two numbers: ";  // Просим ввести два числа
    cin >> a >> b;  // Вводим эти два числа от пользователя
    float result = 0.;  // Подготавливаем переменную для хранения результата
    if (action == 1)  // Если action равно 1 (то есть пользователь ввел 1)
        result = a + b;  // тогда в результат пишем сумму
    if (action == 2) {  // Скобочки позволяют внутри условия писать несколько операторов
        result = a;
        result = result * b;  // Переменную result можно использовать и справа и слева одновременно!
    }
    if (3 == action) {  // Порядок здесь не сильно важен, можно слева написать и число
        result = a;
        result /= b;  // Это - упрощенная запись от result = result / b;
    }
    if (action == 4)
        result = a - b;
    cout << "Result: " << result << endl;  // Выводим результат
}

Программа получилась уже чуть больше, чем обычно. Но и делает она тоже не мало - в одной программе мы можем складывать, вычитать или умножать два числа!

Давайте по порядку разберем ее. И начнем с условий.

Условия позволяют разветвлять работу программы - в зависимости от некоторого условия она будет выполнять либо одно, либо другое. Синтаксис такой: сначала пишется ключевое слово if (оно тоже не может быть именем переменной), далее в круглых скобочка пишется условие, которое необходимо проверить. После этого пишется одна команда или блок (блоком называется последовательность  нескольких команд в фигурных скобках), которая исполнится в том случае, если условие оказалось верным.

Например, условие (action == 1). Обратите внимание - здесь двойной знак равенства, это проверка на равенство того, что стоит слева, и того, что стоит справа от него. Это потому, что оператор "=" - это "присвоить значение". Об этом чуть позже. Так вот, если переменная action равна 1 (пользователь ввел 1), то выполнится команда result = a + b;. И после этого программа продолжит свое выполнение дальше (то есть перейдет к следующему условию - но поскольку может сработать только одно из них, ведь везде мы проверяем одну и ту же переменную, то другие условия не выполнятся, и код перейдет к выводу результата на экран).

Ничего сложного. Что же будет, если пользователь введет другое число, больше 4 ? Программа просто не зайдет ни в одно из условий и выведет ноль. Но она все равно запросит у пользователя ввести два числа. Как этого избежать - в следующем выпуске.

И последнее на сегодня. Как вы заметили, можно писать выражения вроде a = a + b. Эта запись означает "прибавить к а переменную b". Чтобы ее сократить, пишут еще a += b. В приведенной программе это было показано. 

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

До следующего выпуска! 


В избранное