複雑な演算もできる!
前項までで2つの論理演算子を解説しましたね。
今回は2つの演算子で少し複雑な条件式を作ってみます。
下のような&&と||が1つの式にあった場合はどうなるのでしょうか?
&&と||の複合式
正解はこの図のように演算されます。
論理演算子の優先順位は&&の方が高いので&&から演算していきます。
ですので図のような演算順序になります。
ですが、OR演算を先にやらないと意図した結果が得られない場合もあります。
そんな時は、数学のように優先したい式を()でくくりましょう。
そうすれば()の部分から演算されます。
ORを先に演算させる
()は優先順位以外にも式を見やすくする意図もあります。
今まで解説した演算子や関数でサンプルを作ってみしたので試してみてください。
/*
読み込んだ月の季節を表示
*/
#include <stdio.h>
/* メイン関数 */
int main( void )
{
int month; // 入力記憶用
printf( "何月ですか:");
scanf( "%d", &month ); // 入力
/* 判定する */
if( month >= 3 && month <= 5 )
puts( "春です" );
else if( month >= 6 && month <= 8 )
puts( "夏です" );
else if( month >= 9 && month <= 11 )
puts( "秋です" );
else if( month == 1 || month == 2 || month == 12 )
puts( "冬です。" );
else
puts( "そんな月はありません" );
return(0);
}
実行すると入力された月の数値に合わせてメッセージが表示されます。
最終更新:2012年05月25日 21:28