Java入門8
今日の目標
条件分岐の文について学ぶ
準備
Code, Compile & Run | CodeChefにアクセスして、JAVAを選びます。
条件分岐とは
もし~だったら、...をする、そうでなければ...。というのをプログラムで表現します。
多くの言語と同じで、Javaではif文を使います。
とりあえず書いてみよう
int x = 10;//ここを色々変えてみてください if(x > 0) { System.out.println("more than 0"); } System.out.println("finish!");
これが一番単純な形のif文で、ifの後に続ける括弧の中には式を書きます。 その式はboolean型に評価される必要があり、trueならif文のブロック内が実行され、falseなら実行されず飛ばされます。
if文の種類
if文にはelse節と言って、falseの場合のみ実行されるブロックを付けることもできます。
int x = 10;//ここを色々変えてみてください if(x > 0) { System.out.println("more than 0"); } else { System.out.println("0 or less"); } System.out.println("finish!");
さらに複雑なif文
if文にはさらに、if節とelse節の間にelse-if節を好きなだけ作ることもできます。 else節はなくても構いません。
int x = 10; if(x > 100) { System.out.println("more than 100"); } else if(x > 10) { System.out.println("more than 10"); } else if(x > 0) { System.out.println("more than 0"); } else { System.out.println("0 or less"); }
もし、xが100だとしたら、x > 100
, x > 10
, x > 0
全てでtrueを返すので3つのブロックが実行されると思うかもしれません。
しかし、実際は上から評価して、一番最初にtrueを返したブロックを実行してif文を抜けます。
そのため、下のようなコードは意味がありません。
int x = 10; if(x > 0) { System.out.println("more than 0"); } else if(x > 10) { //ここは絶対に実行されない System.out.println("more than 10") }
x > 10
がtrueを返すコードは必ずx > 0
でもtrueを返します。
一番最初にtrueを返すブロックを実行するため、x > 10
のブロックが実行されることはありません。
他の条件分岐文
if文の他に、switch-case文という条件分岐の文もあります。 気になる人は調べてみてください。ここでは省略します。 そこまで便利ではなく、記述が冗長で、バグが潜む危険が高い文のため、使われることはあまりありません。
if文のまとめ
if文は1つのif節と0個以上のif-else節と最後に0個か1個のelse節で構成される。
最初にtrueを返したブロックが実行され、その後if文を抜ける。
演習
2つの数字のうち、大きい方を出力するプログラムの作成。
数字が0~100の間にあるか判定するプログラムの作成。
文字がa ~ zの間の文字か判定するプログラムの作成。