Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職

if命令

処理を分岐する – if命令
if(condition) {
statements
} else if(condition2) {
statements
}
else {
statements
}
condition、condition2…:条件式
statements:条件に合致した時に実行される命令文

if命令は、与えられた条件の真偽に応じて実行する命令を分岐します。直訳するならば、「もし~ならば…」という構造を表します。たとえば以下は、変数valが10であれば「変数valは10です」というメッセージを表示するサンプルです。

StreamBinary.java

package com.example.mynavi.control;

public class StatIf {
  public static void main(String[] args) {
    int val = 10;
    if (val == 10) {
      System.out.println("変数valは10です");
    }	// 結果:変数valは10です
  }
}

「もし~ならば…さもなくば…」を表現したいならば、else句を利用します。

StatIf2.java

package com.example.mynavi.control;

public class StatIf2 {
  public static void main(String[] args) {
    int val = 11;
    if (val == 10) {
      System.out.println("変数valは10です");
    } else {
      System.out.println("変数valは10ではありません");
    }	// 結果:変数valは10ではありません
  }
}

更に、「もし~ならば…、~ならば…、さもなくば…」のように複数分岐を表したいならば、else if句を利用します。else if句は、必要な数だけ繰り返し書いて構いません。

StatIf3.java

package com.example.mynavi.control;

public class StatIf3 {
  public static void main(String[] args) {
    int val = 11;
    if (val == 10) {
      System.out.println("変数valは10です");
    } else if (val == 20) {
      System.out.println("変数valは20です");
    } else {
      System.out.println("変数valは10でも20でもありません");
    }	// 結果:変数valは10でも20でもありません
  }
}
ブロックの省略

ブロックの中のコードが1文である場合には、「{…}」を省略することも可能です。よって、StatIf3.javaは以下のように書いても同じ意味です。

int val = 11;
if (val == 10)
  System.out.println("変数valは10です");
else if (val == 20)
  System.out.println("変数valは20です");
else
  System.out.println("変数valは10でも20でもありません");

ただし、カッコを省略してもさほど簡潔になるわけでもありませんし、むしろブロックの範囲が曖昧になるおそれがあります(例えば、あとから行を追加した時に、今度はブロックも追加しなければ、その行はifブロックの中のコードとは見なされません)。まずは、ブロックを表す{…}は省略しないのを基本としてください。

制御構文
if命令
switch命令
while命令
do…while命令
for命令
拡張for命令
break命令
continue命令

Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職