Tips

Java Silver 練習問題9

Java Silver 練習問題9

Java Silverに関する問題を出題していきます!

■問題1

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

public class Sample {
    public static void main(String[] args) {
        int cnt = 0;
        while(true) {
            if(cnt == 3) {
                break;
            }
            cnt++;
        }
        System.out.println(cnt);
    }
}
  1. 「0」と表示
  2. 「3」と表示
  3. 「4」と表示
  4. 何も表示されない
  5. 無限ループ
解答はここをクリック!

【解答2】
解説
条件式がtrueのため無限ループになりますが、breakが実行されるとwhile文を抜けます。
今回はcntが3のタイミングで抜けるため、cntは3になります。

■問題2

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

public class Sample {
    public static void main(String[] args) {
        int cnt = 0;
        while(true) {
            if(cnt == 3) {
                cnt++;
                break;
            }
        }
        System.out.println(cnt);
    }
}

「0」と表示
「3」と表示
「4」と表示
何も表示されない
無限ループ

解答はここをクリック!

【解答3】
解説
こちらは無限ループになります。
cntが3の場合だけインクリメントが実行されるため、cntは0のまま変化しません。
そのため無限ループになってしまいます。

 

 

■問題3

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

public class Sample {
    public static void main(String[] args) {
        for(int i = 0; i <= 10; i++) {
            if(i == 5) {
                break;
            }
        }
        System.out.println(i);
    }
}
  1. 「0」と表示
  2. 「5」と表示
  3. 「10」と表示
  4. 何も表示されない
  5. コンパイルエラー
解答はここをクリック!

【解答5】
解説
コンパイルエラーになります。
for文やbreak文の記述に間違いはないのですが、出力しようとしているiはfor文の中でしか使うことができません。
スコープの範囲外、ということですね。

 

 

■問題4

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

public class Sample {
    public static void main(String[] args) {
        for(int i = 1; i <= 3; i++) {
            for(int j = 1; j <= 3; j++) {
                if(i == 2) {
                    break;
                }
                System.out.print("a");
             }
        }
    }
}
  1. 「a」と3回表示
  2. 「a」と6回表示
  3. 「a」と9回表示
  4. 何も表示されない
  5. コンパイルエラー
解答はここをクリック!

【解答2】
解説
6回表示されます。
ネストfor文を使っています。
外、内、それぞれ3回ずつ繰り返されるので、全部で9回繰り返されます。
しかし、iが2の場合、内側をbreakします。
すると外側の次の繰り返し処理に移るので計6回となります。
iが1のとき3回、iが2のとき0回、iが3のとき3回、ということです。

 

 

■問題5

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

public class Sample {
    public static void main(String[] args) {
        for(int i = 1; i <= 3; i++) {
            for(int j = 1; j <= 3; j++) {
                if(i == 2) {
                    break;
                }
                System.out.print("a");
            }
            break;
        }
    }
}
  1. 「a」と3回表示
  2. 「a」と6回表示
  3. 「a」と9回表示
  4. 何も表示されない
  5. コンパイルエラー
解答はここをクリック!

【解答1】
解説
3回表示されます。
今回はiが1のとき3回。
次に10行目のbreakにさしかかります。
するとここでは外側のfor文を抜けるので、繰り返しはこの時点で終了となります。

新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search