Tips

Java Silver 練習問題10

Java Silver 練習問題10

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

■問題1

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

public class Sample {
    public static void main(String[] args) {
        for(int i = 0; i < 10; i++) {
            System.out.print(i);
            if(i % 3 == 0) {
                continue;
            }
        }
    }
}
  1. 「0123456789」と表示
  2. 「123456789」と表示
  3. 「0124578」と表示
  4. 「124578」と表示
  5. コンパイルエラー
解答はここをクリック!

【解答1】
解説
「continue」以降のfor文の中の処理はスキップされます。
しかし出力の処理は「continue」の前にあるので、すべて出力されてしまいます。
スキップしたい処理がある場合は「continue」の前に書かないよう気を付けましょう。

■問題2

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

public class Sample {
    public static void main(String[] args) {
        for(int i = 0; i < 10; i++) {
            if(i % 3 == 0) {
                continue;
                System.out.print(i);
            }
       }
    }
}
  1. 「0123456789」と表示
  2. 「123456789」と表示
  3. 「0124578」と表示
  4. 「124578」と表示
  5. コンパイルエラー
解答はここをクリック!

【解答5】
解説
6行目が到達不可能コードです。
到達することができないコードが存在する場合にはコンパイルエラーとなります。

 

■問題3

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

public class Sample {
    public static void main(String[] args) {
        for(int i = 0; i < 10; i++) {
            if(i % 3 == 0) {
                continue;
            }
            System.out.print(i);
        }
    }
}
  1. 「013456789」と表示
  2. 「123456789」と表示
  3. 「0124578」と表示
  4. 「124578」と表示
  5. コンパイルエラー
解答はここをクリック!

【解答4】
解説
3で割った数が0のときだけ、出力処理がスキップされます。
0も3で割ったときの答えは0になるので気を付けましょう。

 

■問題4

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

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

【解答2】
解説
3行目にラベルが使用されていますが、ここでは使用されていません。
iが1の時点でbreakしiが2の場合のループに移ります。

 

■問題5

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

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

【解答4】
解説
今回はラベルが使用されています。
6行目で「mylabel」を指定してbreakしているので、外側のfor文を抜けます。

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

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search