C programming для начинающих: часть 11 – if/else и проверка равенства

 

Предыдущая часть

В C можно выполнять првоерку значений или результата выполнения операций с помощью инструкции if.

Рассмотрим немного изменённый пример из предыдущего поста:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, int **argv) {

    int num1, num2;

    num1 = atoi(argv[1]);;
    num2 = atoi(argv[2]);;

    if (num1 > num2) {
        printf("First argument is greater: %d, %d\n", num1, num2);
    } else {
        printf("Second argument equal or greater: %d, %d\n", num1, num2);
    }

    return 0;

}

Сравнение заключается в пару скобок:

...
if (num1 > num2)
...

А выражение в них должно возвращать true или false результат.

Если результат true – то будет выполнен код, следующий в фигурных скобках за выражением проверки:

...
{
        printf("First argument is greater: %d, %d\n", num1, num2);
    }
...

В этом примере мы выполняем проверку с помощью оператора “больше чем” – “>“, с помощью которого проверяется условие – является ли значение левого операнда (num1) больше, чем правого (num2).

Если же это не так – то программа продолжит своё выполнение и вызовет код из блока после else:

...
    } else {
        printf("Second argument equal or greater: %d, %d\n", num1, num2);
    }
...

Проверяем:

./test 1 2
Second argument equal or greater: 1, 2

И выполнение кода из else:

./test 1 2
Second argument equal or greater: 1, 2

Что если мы укажем два одинаковых числа?

./test 1 1
Second argument equal or greater: 1, 1

Срабатывает второй блок, т.к. мы проверям точное равенство с помощью оператора “>“.

Давайте используем другую проверку:

...
    if (num1 >= num2) {
        printf("First argument is greater or equal: %d, %d\n", num1, num2);
    }
...

Оператор “>=” выполняет проверку “больше или равно”, и результат теперь будет более корректным:

./test 1 1
First argument is greater or equal: 1, 1

Основные операторы сравнения, которые вам доведётся применять – это:

Оператор Описание Пример
== проверка обоих операндов на равенство, True если равны (A == B) is not true.
!= проверка обоих операндов на равенство, False если равны (A != B) is true.
> проверка является ли левый операнд больше правого, True если да (A > B) is not true.
< проверка является ли левый операнд меньше правого, True если да (A < B) is true.
>= проверка является ли левый операнд больше или равеным правому, True если да (A >= B) is not true.
<= проверка является ли левый операнд меньше или равен правому, True если да (A <= B) is true.

Продолжение – часть 12 – составные операторы.