ifの使い方と比較演算子について
この項目で学ぶこと
条件分岐について
プログラムは通常、上から下に処理を行います。しかし、それだけでは単純な動作しか定義できません。状況によって処理する内容を変えたいときに使用するのが制御文です。今回はその制御文のひとつであるifについて紹介します。
比較演算子について
実際にifを使用する前に、比較演算子について学びます。比較演算子とは2つの値を比較する演算子です。まんまです。条件が成立した場合を真(true)、成立しない場合を偽(false)といいます。また、真は0以外の値、偽は0のことをいいます。比較演算子には以下のものがあります。
== a == b aとbは等しい < a < b aはbより小さい > a > b aはbより大きい <= a <= b aはb以下 >= a >= b aはb以上 != a != b aとbは等しくない
条件式はそれ自体が整数値を持っています。条件式が真であれば1の値を持ち、偽のときは0の値を持ちます。値なので代入することが出来ます。やってみましょう。
#include<stdio.h> int main (){ int a = 4 , b = 5; int answer = a < b; printf("answer = %d \n",answer); return 0; }
さて、なんと表示されるでしょうか。この場合、aはbよりも小さいので条件を満たしています。真なのでanswerには1の値が代入され、それが表示されます。これ以降で条件式の結果を代入する場面はありません。
ifについて
ifは条件によって処理を振り分けるときに使います。条件には真か偽かを用います。条件が真のとき、直後のブロックに書かれた処理を実行します。ブロックとは、{ }でくくられた1つ以上の処理です。
if( 条件 ){ 条件を満たすとき、このブロックの処理を実行する }
''ブロックの中が1文しかない場合は{ }を省略しても良い''ことになっていますが、見やすくするために常にブロックで指定したほうがいいと思います。
elseについて
elseは、ifの条件が満たされなかった(偽の)場合に実行される処理です。
論理演算子について
論理演算子は、真偽の値(真理値)の入力に対して新たな1つの真理値を出力する演算子です。複数の条件から判断するのに使われます。
&& a && b aとbの両方が真のとき真(1)を返し、それ以外のとき偽(0)を返す || a || b aかbのいずれか一方でも真のとき真(1)を返し、両方偽のとき偽(0)を返す ! !a aが真のとき偽(0)、偽のとき真(1)を返す
サンプルソース
点数の結果によってコメントが変化するプログラム
#include<stdio.h> int main (){ int score; printf("テストの点数を整数で入力してください:"); scanf_s("%d",&score); printf("あなたの点数は「%d」です。\n",score); if( score >= 70 ){ printf("よくできました\n"); } else{ printf("もっとがんばりましょう\n"); } return 0; }
とても分岐するver
#include<stdio.h> int main (){ int score; printf("テストの点数を入力してください(100点満点):"); scanf_s("%d",&score); // ifとelseで分岐しまくる。1つでも条件を満たせば下のコメントまで飛ぶ if( score > 100 ){ printf("100点満点のテストです、ありえません\n"); } else if( score == 100 ){ printf("満点です。\n"); } else if( score >= 90 ){ printf("すばらしい\n"); } else if( score >= 80 ){ printf("大変よくできました\n"); } else if( score >= 70 ){ printf("よくできました\n"); } else{ printf("もっとがんばりましょう\n"); } // ここ return 0; }