【プログラミング】条件分岐(IF文)の解説【解説】

条件分岐は、

  • ある値が特定の条件を満たした時に処理を行う
  • 逆に、条件を満たさない時に処理を行う

という時に利用します。
利用する機会が多い基本的な処理なので、是非覚えておきましょう。

構文

Java/IF文

if( 条件 ){ //条件が真(True)の場合の処理 } else { //条件が偽(False)の場合の処理。elseは省略可能。}
ad

サンプル

//aの値を評価するif(a == true){ //aがtrueの場合、標準出力にTrueという文字列を出力 System.out.println("True");} else { //aがtrue以外の場合、標準出力にFalseという文字列を出力 System.out.println("False");}

解説

aの値を判定し、その結果によって処理を分けるようにしています。
aがtrueならTrueという文字列を出力し、「それ以外(=true以外)」ならelseの中を実行します。
ちなみに、上記のサンプルではbooleanの比較になるためaが取りうる値はtrueかfalseのいずれかになります。
else(条件が偽の場合)の処理が不要な場合は省略できます。
また、分岐後の処理を1行で書く場合は{}も省略可ですがあまりオススメはしません。(見にくくなる為。コーディング規約で禁止しているところもある)
以下のような形になります。

if(a == true)  System.out.println("True");

応用編

複数のIF文

さらにIF文は以下のようにIF文を連続させることも可能です。

if(a = 1){ System.out.println("1");else if(a = 2){ System.out.println("2");} else { System.out.println("1でも2でもない");}

評価は上から順番に実行されるので、条件を満たした後の処理は行われません。

論理演算子

条件式に利用できる演算子のこと。以下のようなものがあり、これらを使用することで後述する複合条件として条件文を記載することができます。

演算子演算子の意味サンプル解説
!NOT!AA以外ならOK
&ANDA & BAとBどちらも条件を満たす場合
^XORA ^ BAとBの結果が一致しない場合(trueとtrue、falseとfalseはNG)
|ORA | BAかBどちらかが条件を満たす場合
&&ANDA && B AとBどちらも条件を満たす場合 (AがFalseの場合Bは評価しない)
||ORA || B AかBどちらかが条件を満たす場合 (AがTrueならBは評価しない)

複合条件

1つのIF文の条件文の中で条件を複数設定することができます。
これによって、IF文を入れ子にしたりする必要がなくなるので見やすくなります。

if(a = 1 && b = 1){ System.out.println("aもbも1");else if(a = 1 && b = 2){ System.out.println("aは1,bは2");else if(a = 2 && b = 1){ System.out.println("aは2,bは1");else if(a = 2 && b = 2){ System.out.println("aもbも2");} else { System.out.println("1でも2でもない");}//複合条件を使用しないと階層が深くなってしまうif(a = 1){ if(b = 1){  System.out.println("aもbも1"); } else if( b = 2){  System.out.println("aは1、bは2"); }}else if(){}...