Javaの基本構文

1. 順序構造

2. 分岐構造

if() {
}
else {
}

switch文:

class Example {
    public static void main(String[] args) {
        int value = 6;
        switch(value) {
            case 1:
                System.out.println("A");
                break;
            case 6:
                System.out.println("B");
                break;
            default:
                System.out.println("C");
                break;
        }
    }
}

valueはbyte, short, int, char, enum, Stringのみ使用可能。

caseの後にbreakを記述しないと、次のbreakまでのすべてのコードが実行されます。

この特性を利用して、成績照会システムを作成できます。

import java.util.Scanner;
class ScoreChecker {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int score = scanner.nextInt();
        switch(score / 10) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("不合格");
                break;
            case 6:
                System.out.println("合格");
                break;
            case 7:
                System.out.println("中等");
                break;
            case 8:
                System.out.println("良好");
                break;
            case 9:
                System.out.println("優秀");
                break;
            case 10:
                if(score == 100) {
                    System.out.println("満点");
                    break;
                }
            default:
                System.out.println("0から100までの数値を入力してください");
                break;
        }
    }
}

3. ループ構造

for(初期化; 条件; 更新) {
}
while(条件) {
    更新;
    実行コード;
}
do {
    更新;
    実行コード;
} while(条件);

初期値が条件を満たしていない場合:

import java.util.*;
class LoopExample {
    public static void main(String[] args) {
        int count = 10;
        while(count < 5) {
            System.out.println(count);
        }
        System.out.println(count);
        count = 10;
        do {
            System.out.println(count);
            count++;
        } while(count < 5);
        System.out.println(count);
    }
}

break:

int index = 1;
while(index < 5) {
    if(index == 3) {
        break;
    }
    index++;
}

breakはループを終了します。

import java.util.*;
class NestedLoopBreak {
    public static void main(String[] args) {
        for(int outer = 0; outer < 5; outer++) {
            for(int inner = 0; inner < 5; inner++) {
                if(inner == 3) {
                    break;
                }
                System.out.println("outer=" + outer + "|inner=" + inner);
            }
        }
    }
}

breakは最も内側のループのみを終了し、その後にコードを書くことはできません。

continue:

import java.util.*;
class NestedLoopContinue {
    public static void main(String[] args) {
        for(int outer = 0; outer < 5; outer++) {
            for(int inner = 0; inner < 5; inner++) {
                if(inner == 3) {
                    continue;
                }
                System.out.println("outer=" + outer + "|inner=" + inner);
            }
        }
    }
}

innerは0,1,2,4のときに表示されます。

breakではinnerが4にはなりません。

ループラベル:

import java.util.*;
class LabeledLoop {
    public static void main(String[] args) {
        outerLoop: for(int outer = 0; outer < 5; outer++) {
            innerLoop: for(int inner = 0; inner < 5; inner++) {
                if(inner == 3) {
                    break outerLoop;
                }
                System.out.println("outer=" + outer + "|inner=" + inner);
            }
        }
    }
}

innerLoop内でinner==3の場合、outerLoopを終了します。

continueも同様です。

import java.util.*;
class LabeledContinue {
    public static void main(String[] args) {
        outerLoop: for(int outer = 0; outer < 5; outer++) {
            innerLoop: for(int inner = 0; inner < 5; inner++) {
                if(inner == 3) {
                    continue outerLoop;
                }
                System.out.println("outer=" + outer + "|inner=" + inner);
            }
            System.out.println("---------");
        }
    }
}

continueは外側のループを中断し、内部のループは実行されません。外側のループの次のイテレーションから再開します。

outer=0, inner=3のとき、現在のループを停止し、次のouter=1のイテレーションから開始します。

whileにもラベルを使用できます: label: while(...) {}

Math.pow(a, b); これはaのb乗を計算します。

タグ: Java 制御構造 ループ switch if-else

6月23日 23:07 投稿