条件分岐の手法【Java/if】

mycompilerでコード編集からコンパイル、実行まで行えます。

「条件aに合致するときは1の処理、条件bに合致するときは2の処理を・・・」といった操作ができるのが『if』の特徴です。

Javaに限らずif文はプログラミングの基本となりますのでしっかりと身に付けておきましょう。

『if』の構文と意味を解説

まずはifの使い方を身に付けましょう。

//ifの構文

if (条件1) {
      条件1に合致する場合の処理;}
else if (条件2) {
      条件2に合致する場合の処理;}
else {
      条件1にも2に合致しなかった場合の処理;}

条件分岐の流れはまず『if』で条件を定義し、『{}』内には条件に合致した場合に実行する処理を記述します。

条件が複数ある時には『else if』で更に条件と実行処理を追加してあげます。

最後の『else』は『if』や『else if』のいずれの条件にも合致しなかった時に実行される処理なので、条件を記述する必要はありません。

また、『else if』や『else』は必ずしも必要ではありません。

ifの使い方を例文で解説

ここからは実際に例文を見てみましょう。

下記は変数『num』に入力した数値が奇数、偶数、小数を含む数値のうちどれに該当するかチェックできるプログラムです。

//ifのプログラム例(numの奇数、偶数、小数を識別)

public class Main {

  public static void main(String[] args) throws Exception {
    double num = 7.50;
 if (num % 2 == 0) {
      System.out.println(num+"は偶数です");}
 else if (num % 2 == 1) {
      System.out.println(num+"は奇数です");}
 else  {
      System.out.println(num+"は小数を含みます");}
  }
}
//実行結果

7.5は小数を含みます

ifを使うときに注意点

if文は『num==1』のような特定条件の指定は何も考えずにできるのですが、『num>=1』のように範囲を持つ時には注意が必要です。

例えば、以下の例を見てみましょう。

//ifの注意点

public class Main {

  public static void main(String[] args) throws Exception {
    int num = 17;
 if (num >= 5) {
      System.out.println(num+"は5以上です");}
 else if (num >= 10) {
      System.out.println(num+"は10以上です");}
 else if (num >= 15) {
      System.out.println(num+"は15以上です");}
 else  {
      System.out.println(num+"は5未満です");}
  }
}
//出力結果

17は5以上です

上記は『num』に設定された値を5の倍数ごとに比較し、近い数値を出すプログラムです。

プログラムの意図としては3個目の条件分岐にて15以上となるのが望ましいですが、実際に出力されるのは1個目の分岐結果です。

このような不具合が起こる理由は、プログラムの実行順序にあります。

プログラムは一番上の『if』から2個目の『else if』→3個目の『else if』→4個目の『else』と進むのですが、ここでいずれかの条件に合致すると以降の条件分岐は実行されなくなるのです。

上の例では『num>=5』という条件に当てはまったため、『else if』以降が実行されなかったという訳です。

ifの省略形 三項演算子

『三項演算子』はifの省略形とも言える演算子で、ifによる条件分岐を1行で記載できます。

文法は『条件』+『?』+『条件に合致した時の実行内容』+『:』+『条件に当てはまらなかった時の実行内容』となります。

//三項演算子

public class Main {
    
  public static void main(String[] args) {
    int x= 9;
    String ans = x % 2 == 0 ? "xは偶数" : "xは奇数";
    System.out.println(ans);
  }
}
//出力結果

xは奇数

コメント