- Получить ссылку
- Электронная почта
- Другие приложения
Логические значениия ИСТИНА (True) и ЛОЖЬ (False) в языке С
При выполнении многих операторов языка С вычисляются
значения условных выражений и в зависимости от полученного значения
выбирается та или иная ветвь вычислительного процесса. Условное
выражение может принимать одно из двух значений: ИСТИНА или ЛОЖЬ. В
языке С значение ИСТИНА представлено любым ненулевым значением, включая
отрицательные числа. Значение ЛОЖЬ всегда представлено нулем. Такое
представление логических значений ИСТИНА и ЛОЖЬ позволяет весьма
эффективно программировать многие процедуры.
Условные операторы
В языке С существуют два условных оператора: if и switch. При определенных обстоятельствах оператор ? является альтернативой оператора if.
Оператор if
Общая форма оператора if следующая:
if (выражение) оператор; else оператор;
Здесь оператор может быть только одним оператором, блоком операторов или отсутствовать (пустой оператор). Фраза else может вообще отсутствовать.
Если выражение истинно[1] (т.е. принимает любое значение, отличное от нуля), то выполняется оператор или блок операторов, следующий за if. В противном случае выполняется оператор (или блок операторов), следующий за else (если эта фраза присутствует). Необходимо помнить, что выполняется или оператор, связанный с if, или с else, но оба — никогда!
Условное выражение, входящее в if, должно
иметь скалярный результат. Это значит, что результатом должно быть целое
число, символ, указатель или число с плавающей точкой, но им не может
быть массив или структура. (В Стандарте С99 тип _Вооl также является скалярным, поэтому значение этого типа может использоваться в условии оператора if.) В выражении-условии оператора if
результат плавающего типа используется редко, потому что это
существенно замедляет вычислительный процесс. Объясняется это тем, что
для выполнения операций над плавающими операндами[2] необходимо выполнить больше команд процессора, чем для выполнения операций над целыми числами или символами.
В следующей программе иллюстрируется использование оператора if.
В ней запрограммирована очень простая игра "угадай магическое число".
Если играющий угадал число, на экран выводится сообщение **Верно**. Программа генерирует "магическое число" с помощью стандартного генератора случайных чисел rand(). Генератор возвращает случайное число в диапазоне между 0 и RAND_MAX (обычно это число не меньше 32767). Функция rand() объявлена в заголовочном файле <stdlib.h>.
/* Магическое число, программа N1. */ #include <stdio.h> #include <stdlib.h> int main(void) { int magic; /* магическое число */ int guess; /* попытка игрока */ magic = rand(); /* генерация магического числа */ printf("Угадай магическое число: "); scanf("%d", &guess); if(guess == magic) printf("** Верно **"); return 0; }
В следующей версии программы для игры в "магическое число" иллюстрируется использование оператора else. В этой версии выводится дополнительное сообщение в случае ложного ответа.
/* Магическое число, программа N2. */ #include <stdio.h> #include <stdlib.h> int main(void) { int magic; /* магическое число */ int guess; /* попытка игрока */ magic = rand(); /* генерация магического числа */ printf("Угадай магическое число: "); scanf("%d", &guess); if(guess == magic) printf("** Верно **"); else printf("Неверно"); return 0; }
[1]Иногда в этом случае говорят, что выражение принимает значение ИСТИНА, которое в языке С может быть представлено, как мы помним, любым целым числом, отличным от нуля[2]Плавающие операнды называются также операндами в формате с плавающей точкой, вещественными операндами.
Комментарии
Отправить комментарий