Tips

Java Silver 練習問題5

Java Silver 練習問題5

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

■問題1

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

public class Sample {
    public static void main(String[] args) {
        boolean b = false;
        int x = 10;
        int y = 20;
        if(b = y / x == 2) {
            System.out.println("TRUE");
        } else {
            System.out.println("FALSE");
        }
    }
}
  1. TRUE
  2. FALSE
  3. 何も表示されない
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答:1】

ポイントは6行目、if文の条件式です。
代入式が書かれていますが、その結果は変数bです。
変数bはboolean型なので問題なく実行できます。
そのbにx / y == 2の結果が代入され、TRUEが出力されます。

 

 

■問題2

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

public class Sample {
    public static void main(String[] args) {
        int score = 60;

        if(score > 80) {
            System.out.println("優");
        } else if(score > 70) {
            System.out.println("良");
        } else if(score > 60) {
            System.out.println("可");
        } else {
            System.out.println("不可");
        }
    }
}
  1. 不可
  2. 何も表示されない
解答はここをクリック!

【答え:4】
少しいじわるな問題だったかもしれません。
scoreの値に応じた出力がされるのですが、条件で使われている演算子が「>」となっています。
「>」はその値自体は含みません。
したがって「score > 60」ではfalseとなるためelseの「不可」が表示されます。
もし60点を「可」にしたいのであれば「>=」とする必要があります。
細かいようですがプログラミングではとても重要なことです。

 

 

■問題3

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

public class Sample {
    public static void main(String[] args) {
        int i = 2;
        switch (i) {
        case 1:
            System.out.println("iは1です");
            break;
        case 2:
            System.out.println("iは2です");
            break;
        default:
            System.out.println("iは1でも2でもありません");
            break;
        }
    }
}
  1. iは1です
  2. iは2です
  3. iは1でも2でもありません
  4. コンパイルエラー
  5. 1~4以外
解答はここをクリック!

【答え:2】
switch文はif文とは違い整数値で判定を行います。
case 値:で一致する処理が実行されます。

 

■問題4

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

public class Sample {
    public static void main(String[] args) {
        long num = 10L;
        switch (num) {
        case 1:
            System.out.println("numは1です");
            break;
        case 2:
            System.out.println("numは2です");
            break;
        default:
            System.out.println("numは1でも2でもありません");
            break;
        }
    }
}
  1. numは1です
  2. numは2です
  3. numは1でも2でもありません
  4. コンパイルエラー
  5. 1~4以外
解答はここをクリック!

【答え:4】
switch文ではlong型は使えません。
使うことができる基本データ型はint/short/byte/charの4つです。
つまりint型に変換可能なものに限られています。

 

■問題5

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

public class Sample {
    public static void main(String[] args) {
        int num = 1;
        switch (num) {
        case 1:
            System.out.println("numは1です");
        case 2:
            System.out.println("numは2です");
        default:
            System.out.println("numは1でも2でもありません");
        }
    }
}
  1. numは1です
  2. numは2です
  3. numは1でも2でもありません
  4. コンパイルエラー
  5. 1~4以外
解答はここをクリック!

【答え:5】

実行結果は

numは1です
numは2です
numは1でも2でもありません

と表示されます。
理由はbreak;がないからです。
breakがない場合、合致した以降の処理がすべて実行されてしまいます。

 

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

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search