制御フロー文 (control flow statement)

if-else

14.9. The if Statement - Chapter 14. Blocks and Statements

switch

switch (expression) {
    case n: statements
    case m: statements
    . . .
    default: statements
}

expressionは整数型 (char、byte、short、int、およびそれらに対応するラッパークラス) か、Stringまたはenum型でなければなりません。またcaseラベルは、整数定数かenum定数でなければなりません。14.11. The switch Statement - Chapter 14. Blocks and Statements

void Foo(String str) {
    switch (str) {
        case "A":
            // statements
            break;

        case "B":
        case "C":
            // statements
            break;

        default:
            // statements
    }
}

while、do-while

14.12. The while Statement - Chapter 14. Blocks and Statements

for

14.14. The for Statement - Chapter 14. Blocks and Statements

基本for文

for (initialization-expression; loop-expression; update-expression)
    statement

拡張for文 (for-eachループ)

for (Type loop-variable : set-expression)
    statement

set-expression内の各loop-variableに対して、statementを実行します。

set-expressionを評価した結果は、配列インスタンスかjava.lang.Iterableを実装したオブジェクトでなければなりません。なおすべてのコレクション クラスは、それを実装しています。

この方法では、配列を前方向にしかループできません。また配列の要素の値も変更できません。そのような用途では、基本for文を使用します。

配列

int[] array = { 1, 2, 3 };

for (int a : array) {
    System.out.print(a);
}

コレクション

ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);

for (int a : arrayList) {
    System.out.print(a);
}

これを基本for文に書き換えると、

for (Iterator<Integer> iterator = arrayList.iterator(); iterator.hasNext(); ) {

    int a = iterator.next();
    System.out.print(a);
}

となります。ちなみにwhile文では、

Iterator<Integer> iterator = arrayList.iterator();
while (iterator.hasNext()) {

    int a = iterator.next();
    System.out.print(a);
}

のように表せます。

ラベル (label)

label: statement

ラベルは、breakとcontinueだけが参照できます。

break

break;
break label;

continue

continue;
continue label;

return

return;
return expression;

参考

参考書

Javaのドキュメントから検索