Условный оператор и условная операция
Условный оператор предназначен для выбора одного из двух альтернативных действий и имеет следующую форму записи:
БНФ:
условный_оператор =
"if" "("выражение")" оператор_1 ["else" оператор_2]
Пример:
if ( a ) c = b+1; else c = b - 1;
if ( a > b ) k = sin( x ); else k = x + x;
При выполнении условного оператора вначале вычисляется <выражение>. Если его значение не равно нулю, то выполняется <оператор_1>, а <оператор_2> пропускается. Если значение выражения равно нулю, то выполняется <оператор_2>, а <оператор_1> пропускается.
При наличии вложенных операторов if следует иметь в виду, что ключевое слово else всегда относится к ближайшему if, как показано в следующем примере:
if( b > a )
if( c < d ) k= sin(x);
else t = cos(x);
else c = tan( x );
Для того чтобы избежать ошибок рекомендуется использовать операторные скобки
if( b < a )
{
if( c < d ) k = sin( x );
else t = cos( x );
}
else c = tan( x );
Особенно это важно если у вложенного оператора if отсутствует else, т.е
if( b > a )
if( c < d ) k = sin( x );
else c = tan( x ); /* else относится к
вложенному if */
if( b > a )
{
if( c < d ) k = sin( x );
}
else
c = tan( x ); /* else относится к первому if */
Если в качестве <оператора_1> или <оператора_2> используется группа операторов, то ее записывают как составной оператор, заключая ее в операторные скобки "{" и "}".
Для того, чтобы сделать программу более понятной, рекомендуется операторы записывать в следующих формах:
1) короткие операторы:
if( a > b ) k = sin( x ); else k = x*x;
if( a > b ) k = sin( x );
else k = x*x;
2) группы коротких операторов:
if( a > b ) { ... } else {... }
if( a > b ) { ... }
else { ... }
или
if( ... )
{ ..... }
else
{ ..... }
3) длинные группы операторов:
if(... )
{
.
.
.
}
else
{
.
.
.
}
4) множественный выбор:
if ( a == 6 ) { ... }
else if ( a == 8 ) { ... }
else if ( a == 15 ) { ... }
else if ( a > 20 && a < 28 ) { ... }
else { ... }
В некоторых случаях вместо оператора if удобно использовать условную операцию ?:, которая позволяет сократить запись программ и число используемых переменных.
БНФ:
условное_операция = выр_0 "?" выр_1 ":" выр_2
Значение условной операции равно <выр_1>, если <выр_0> не равно 0 и <выр_2> в противном случае. Например, следующий оператор
if ( x>a ) f = sin( x-a ); else f = sin(x);
можно заменить условной операцией, и сразу вычислить f:
f = sin( x>a ? x-a : x );
Очевидно, в последнем случае получился более короткий код, поскольку обращений к переменной f и функции sin вдвое меньше.
Дата добавления: 2015-02-13; просмотров: 749;