ほぷしぃ

Java言語入門 〜C言語を学んだ君へ〜

[第5回]繰り返し処理と分岐処理

[1] 分岐処理

引き続き制御文について学びます。
次は分岐処理のif文、switch文についてやりましょう。

[2] if文

まずは、if文を学びます。
if文の書式について説明します。

if文の書式

if (条件式1) {
    処理A
} else if (条件式2) {
    処理B
} else if (条件式3) {
.
.
.
.
.
} else {
    処理C
}

C言語と違いはありませんね。
実際にJavaのプログラムを見てみましょう。

サンプルプログラム

public class Java05_03{
    public static void main(String args[]){
        for(int i = 0; i < 10; i++){
            System.out.println("i = "+ i);
            if (i >= 5) {
                System.out.println("変数iは5以上の数です");
            } else {
                System.out.println("変数iは5未満の数です");
            }
        }
    }
}

実行結果

実行結果
for文でループさせて、iの値の状態で分岐をさせています。
前ページでのwhile文でも説明しましたが、"i >= 5"を満たしている(true)から2つ目の出力が実行されます。

[3] switch文

さて、2つ目の分岐処理はswitch文です。

switch文の書式

switch() {
    case 定数式1:
        処理
        break;
    case 定数式2:
        処理
        break;
        ・
        ・
        ・
    default:
        処理
}

では、実際にサンプルプログラムを見てみましょう。

サンプルプログラム

public class Java05_04{
    public static void main(String args[]){
        for(int i = 0; i < 5; i++){
            switch (i) {
                case 0:
                    System.out.println("iの値は0です");
                    break;
                case 1:
                    System.out.println("iの値は1です");
                    break;
                case 3:
                    System.out.println("iの値は3です");
                    break;
                default:
                    System.out.println("iは値は0,1,3以外です");
            }
        }
    }
}

実行結果

実行結果
for文でループさせて、iの値の状態で処理を分岐させています。
特にプログラムの内容に関しては大丈夫でしょうか。

switch文の式には、byte、char、short、int型を使うことができます。

[4] break文とcontinue文

break文はループを抜けるときに使用します。
基本的な使い方はC言語と同じです。
サンプルソースを見てください。

サンプルプログラム break文

public class Java05_05{
    public static void main(String args[]){
        int i, sum = 0;
        for(i = 0; i < 20; i++){
            sum += i;
            System.out.println("現在処理の回数 = " + i);
            System.out.println("sum = " + sum);

            if(sum > 20){
                System.out.println("sumの値が20を超えたので終了");
                break;
            }
        }
    }
}

実行結果

実行結果

for文だけならば、iの値が20になるまで処理を行うわけですが、
途中で sum > 20 と条件を指定しています。ここで、break文を使って、ループを抜け出しています。
ただし、この場合はひとつのループしか抜け出せないので、
複数のループ内を一気に抜け出したい場合には、以下のように記述します。

ラベル付きbreak文

LABEL:
for(int i = 0; i < 5; i++){
    for(int j = 0; j <= 10; j++){
        処理
        break LABEL;
    }
}

これで、その中で何重にもループをしていた場合、
break 名前; と記述することで、指定していたブロックまで抜けることができます。
上の例だとLABELのあるブロックまで抜けることができます。

次にcontinue文について説明します。
continueを使うと処理を行わずにスキップすることができます。
以下のサンプルを見てください。

サンプルプログラム continue文

public class Java05_06{
    public static void main(String args[]){
        int i;
        for(i = 0; i < 5; i++){
            if(i == 2)
                continue;
                System.out.println("現在処理の回数 = " + i);
        }
    }
}

実行結果

実行結果

実行してみると分かりますが、iが2の時に以下の処理を行いません。
continue文はこのように使います。break文同様にcontinueにもラベルが使えます。

これで、制御文の学習が終わりました。
次は、実際に制御文を使った練習問題を解いて下さい。



前のページへ ページのトップへ 第1問-問題へ