【Javaの基礎】条件分岐(if~else if~else)

 

こんにちは、現役SEの「とも」です。

今回から、条件分岐に入っていきます。

条件分岐とは、「特定の条件を満たす」場合に処理を行うプログラムの記載方法です。

 

ifの構文

書き方としては以下のように条件式を判定して、条件が満たされていれば{}で囲まれた箇所が実行されます。

条件式にはboolean型が入ります。

 

 
if( 条件式 ){
  // 条件式がtrueとなる場合に処理を実行する
}
	

 

条件式にはboolean型が入るので、以下のような記載ができます。

 

記載例① 条件式を記載

比較演算子や論理演算子で「結果がboolean」となる演算を記載することができます。

 

 
int count = 1;
if( count == 1 || count == 3){
  System.out.println("カウントは1か3でした");
}
	

 

比較演算子と論理演算子については、以下の記事を参考にしてみてください。

 

記載例② boolean型変数を条件式に書く

条件式をif文の外に出して、結果を格納したboolean変数のみを記載できます。

 

 
int count = 1;
boolean result = (count == 1 || count == 3);

if( result){
  System.out.println("カウントは1か3でした");
}
	

 

記載例③ リテラルを条件式に書く

リテラルを直接条件式に記載することもできます。

 

 
if( true ){
  System.out.println("if文の判定がtrueでした");
}
	

 

if~elseの構文

ifの構文では、「特定の条件」に合致する場合は良いですが、「それ以外」の条件で処理したい場合があります。

 

その場合、以下のようにif~elseの構文で記載します。

ifの条件式に合致しない場合は、elseの{}内に記載した処理が実行されることになります。

 

 
if( 条件式 ){
  // 条件式がtrueとなる場合に処理を実行する
}else{
  // 条件式がfalseとなる場合に処理を実行する
}
	

 

「if」と「if~else」の違い

 

理解を深めるために、ifのみでelseを記載しない場合にどのような動きになるのかを見てみたいと思います。

 

elseを使用した場合、ifの条件に合致する場合はelse側の処理は実行されません。

 

 
int count = 1;
if( count == 1 || count == 3){
  System.out.println("カウントは1か3でした");
}else{
  System.out.println("カウントは1か3以外でした");
}
	

 

【コンソール表示結果】

 
カウントは1か3でした
	

 

elseを使用せずに記載した場合はどうなるでしょうか?

答えはif内の処理が実行された後に、そのまま実行されてしまいます。

 

 
int count = 1;
if( count == 1 || count == 3){
  System.out.println("カウントは1か3でした");
}
  System.out.println("カウントは1か3以外でした");
	

 

【コンソール表示結果】

 
カウントは1か3でした
カウントは1か3以外でした
	

 

初心者の頃は勘違いしやすいポイントなので、注意しましょう!

 

if~else if~elseの構文

 

if~elseの構文では、「特定の条件」と「それ以外」の条件のみ処理を書くことができましたが、これだと複数の条件で別々の処理を書くことができません。

 

2つ以上の特定の条件の処理を書くには、以下のように「else if」構文を使います。

 

 
int count = 2;
if( count == 1 || count == 3){
  System.out.println("カウントは1か3でした");
}else if( count == 2){
  System.out.println("カウントは2でした");
}else{
  System.out.println("カウントは1~3以外でした");
}
	

 

もっと条件を増やしたい場合は、「else if」を増やす

 

 
int count = 4;
if( count == 1 || count == 3){
  System.out.println("カウントは1か3でした");
}else if( count == 2){
  System.out.println("カウントは4でした");
}else if( count == 4){
  System.out.println("カウントは4でした");
}else{
  System.out.println("カウントは1~4以外でした");
}
	

 

まとめ

if文のポイントは以下の4つです。

  • 特定の条件で処理を実行したいときは、「if」文を使用する
  • それ以外の条件を実行したいときは、「else」文を追加する
  • 2つ目以上の特定の条件を実行したいときは、「else if」文を「if」と「else」の間に追加する
  • 「if」や「else if」で判定する条件式にはboolean型が入り、trueの場合に実行される

 

if文は、頻繁に使われる重要な制御構文なので、100%理解していないと実際の現場では厳しいです。

100%の理解を目指しましょう。