В 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 — составные операторы.

2 104 views