В 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); } ...
Проверяем:
[simterm]
$ ./test 1 2 Second argument equal or greater: 1, 2
[/simterm]
И выполнение кода из else
:
[simterm]
$ ./test 1 2 Second argument equal or greater: 1, 2
[/simterm]
Что если мы укажем два одинаковых числа?
[simterm]
$ ./test 1 1 Second argument equal or greater: 1, 1
[/simterm]
Срабатывает второй блок, т.к. мы проверям точное равенство с помощью оператора “>
“.
Давайте используем другую проверку:
... if (num1 >= num2) { printf("First argument is greater or equal: %d, %d\n", num1, num2); } ...
Оператор “>=
” выполняет проверку “больше или равно”, и результат теперь будет более корректным:
[simterm]
$ ./test 1 1 First argument is greater or equal: 1, 1
[/simterm]
Основные операторы сравнения, которые вам доведётся применять – это:
Оператор | Описание | Пример |
---|---|---|
== | проверка обоих операндов на равенство, 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 – составные операторы.