基礎文法

条件分岐

概要

条件分岐は,if もしくは switch を用います. 文法は,C言語と同じです.典型的な例を次に示します.

if(条件式1){
    // 条件式1が成り立ったときに実行される文.
}
else if(条件式2){
    // 条件式2が成り立ったときに実行される文.
}
else{
    // 条件式1も条件式2も成り立たなかったときに実行される文.
}

C言語の場合,条件式は int 型で表現しましたが,Java言語の場合, Boolean 型となります. Boolean 型は,true もしくは false の2値で表される型です. C言語のようにプログラムを書くと,Boolean型になるようになっているので,そこまで気にしなくても良いです.

Boolean型による条件分岐

if(value = 10){
    // この場合,if文の条件が Integer 型になるため,コンパイルエラーになる.
}
if(value == 10){
    // こう書くと,value == 10 の結果は Boolean になるため,Javaのif文として成り立つ.
}

例題

整数型である Integer 型の値が正負のどちらかであるかを if 文を使って判定しましょう. 以下のプログラムの.....部分を埋めて完成させてください.

public class PositiveChecker{
    public static void main(String[] args){
        Integer value = 5;
        if(.....){
            System.out.printf("与えられた数値は正の値です: %d%n", value);
        }
        else if(.....){
            System.out.printf("与えられた数値は0です: %d%n", value);
        }
        else{
            System.out.printf("与えられた数値は負の値です: %d%n", value);
        }
    }
}

完成すれば,value の値をいろいろと変更して,実行してみましょう. その際,valueがどのような値になれば,全ての分岐が網羅できるか, 何度変更すれば良いかを考えてみましょう.

出力例

$ java PositiveChecker
与えられた数値は正の値です: 5
$ java PositiveChecker
与えられた数値は負の値です: -9
$ java PositiveChecker
与えられた数値は0です: 0

繰り返し

概要

繰り返しは,for もしくは while を利用します.文法はC言語と同じです. 典型的な例を次に示します.

// 初期化式,継続条件式,反復式をセミコロン(;)で区切る.
for(Integer i = 0; i < 10; i++){
    // iが0から9までこの文を繰り返す.
}
// for(初期化式; 継続条件式; 反復式)

Integer loop = 0;
// 継続条件式を while に指定する.
while(loop < 10){
    // loopが0から9までこの文を繰り返す.
    loop++;
}
// while(継続条件式)

ループ制御には,Integer型を利用します.また,if文と同じく,繰り返し文の継続条件はBoolean型で表現されます.

また,for文の初期化式で変数宣言が行えるようになっています. ループを途中で抜けるには,break,そして, ループを途中で中断し,次の繰り返しに移行するには continueを使うのも C言語と同じです.

例題

for 文を使って,1以上,100未満の奇数の値を出力しましょう.

public class OddPrinter{
    public static void main(String[] args){
        // for文を使って繰り返し.
    }
}

出力例

$ java OddPrinter
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99

完成すれば,1以上,100未満の偶数値を出力する EvenPrinter を作成してください.

例題 改1

OddPrinterEvenPrinter それぞれで,20個の数値を出力するごとに改行してください.

出力例

$ java EvenPrinter
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80
82 84 86 88 90 92 94 96 98