Условные выражения используются структурами условного и циклического управления для определения потока управления программы.
// conditional control structure
if (conditionalExpression) {
codeThatRunsIfConditionalExpressionIsTrue();
} else {
codeThatRunsIfConditionalExpressionIsFalse();
}
// basic loop control structure
while (conditionalExpression) {
codeThatRunsUntilConditionalExpressionIsFalse();
}
// run-at-least-once loop control structure
do {
codeThatRunsAtLeastOnceUntilConditionalExpressionIsFalse();
} while (conditionalExpression);
С логической точки зрения условные выражения по своей природе являются логическими (истина или ложь).Однако некоторые языки, такие как C и C ++, позволяют использовать числовые выражения или даже указатели в качестве условных выражений.Когда в качестве условного выражения используется не булево выражение, они неявно преобразуются в сравнения с нулем.Например, вы можете написать:
if (numericalExpression) {
// ...
}
И это будет означать следующее:
if (numericalExpression != 0) {
// ...
}
Это позволяет получить краткий код, особенно в языках указателей, таких как C и C ++, где тестирование на нульуказатели довольно распространены.Однако, краткий код не обязательно делает его более понятным.В языках высокого уровня, таких как C # или Java, использование числовых выражений в качестве условных выражений недопустимо.Если вы хотите проверить, была ли ссылка на объект инициализирована, вы должны написать:
if (myObject != null) /* (myObject) alone not allowed */ {
// ...
}
Аналогично, если вы хотите проверить, является ли числовое выражение нулевым, вы должны написать:
if (numericalExpression != 0) /* (numericalExpression) alone not allowed */ {
// ...
}