if statement
Условно выполняет код.
Используется там, где код должен выполняться только при выполнении некоторого условия.
Содержание |
Синтаксис
attr-spec-seq
(необязательно)
if (
expression
)
statement-true
|
(1) | ||||||||
attr-spec-seq
(необязательно)
if (
expression
)
statement-true
else
statement-false
|
(2) | ||||||||
| attr-spec-seq | - | (C23) необязательный список атрибутов , применяемых к оператору if |
| expression | - | выражение любого скалярного типа |
| statement-true | - | любой оператор (часто составной оператор), который выполняется, если expression не равно 0 |
| statement-false | - | любой оператор (часто составной оператор), который выполняется, если expression равно 0 |
Объяснение
expression должно быть выражением любого скалярного типа .
Если expression сравнивается как неравное целочисленному нулю, statement-true выполняется.
В форме (2) , если expression равно целочисленному нулю, statement-false выполняется.
|
Как и все другие операторы выбора и итерации, вся конструкция if-оператора имеет свою собственную область видимости блока: enum {a, b}; int different(void) { if (sizeof(enum {b, a}) != sizeof(int)) return a; // a == 1 return b; // b == 0 in C89, b == 1 in C99 } |
(since C99) |
Примечания
Ключевое слово else всегда связывается с ближайшим предшествующим if (другими словами, если statement-true также является оператором if , то этот внутренний оператор if также должен содержать часть else ):
Если statement-true выполняется через goto , statement-false не выполняется.
Ключевые слова
Пример
Вывод:
i > 2 is false i == 3 i != 3 is false
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 6.8.5.2 Оператор if (стр: 154)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 6.8.4.1 Оператор if (стр: 108-109)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 6.8.4.1 Оператор if (стр: 148-149)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 6.8.4.1 Оператор if (стр: 133-134)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 3.6.4.1 Оператор if
Смотрите также
|
Документация C++
для
if
statement
|