Tips

Java Silver 練習問題3

Java Silver 練習問題3

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

 

■問題1

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

public class Sample {
    public static void main(String[] args) {
        int i1 = 1;
        int i2 = 1;
        boolean bo1 = i1++ == 1;
        boolean bo2 = ++i2 == 1;
        System.out.println(bo1 + " " + bo2);
    }
}
  1. コンパイルエラー
  2. true true
  3. true false
  4. false true
  5. false false
解答はここをクリック!

【答え:3】

5行目はインクリメントの後置なので式が実行された後に1加算されるのでtrue。
6行目はインクリメントの後置なので式が実行される前に1加算されるのでfalse。

 

 

■問題2

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

public class Sample {
    public static void main(String[] args) {
        int i = 10;
        boolean bo = (i == 1) && (i++ == 10);
        System.out.println(bo + " " + i);
    }
}
  1. false 10
  2. false 11
  3. true 10
  4. true 11
  5. コンパイルエラー
解答はここをクリック!

【答え:1

&&は左オペランドで結果がわかる場合は右オペランドを実行しません。
したがってiはインクリメントされません。

 

 

■問題3

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

public class Sample {
    public static void main(String[] args) {
        int i = 10;
        boolean b;
        boolean bo = (b = true) & (i++ == 10);
        System.out.println(bo + " " + i);
    }
}
  1. コンパイルエラー
  2. true 10
  3. true 11
  4. false 10
  5. false 11
解答はここをクリック!

【答え:3

&演算子は左の結果に関わらず必ず右オペランドも実行するためiはインクリメントされます。
5行目のb = trueの結果はboolean型のため論理演算で使うことができます。

 

 

■問題4

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

public class Sample {
    public static void main(String[] args) {
        int i = 10;
        boolean bo = (++i == ++i) || (i++ == i++);
        System.out.println(i);
    }
}
  1. 10
  2. 11
  3. 12
  4. 13
  5. 14
解答はここをクリック!

【答え:5

4行目||の左オペランド「++i == ++i」は「11 == 12」になるためfalse。
そのため右オペランドも実行されるためさらに2回インクリメントされます。

 

 

■問題5

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

public class Sample {
    public static void main(String[] args) {
        boolean bo = true && false || false & true;
        System.out.println(bo);
    }
}
  1. true
  2. false
  3. bo
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【答え:2】

まず左から順番に。
true && false はfalse。
そしてfalse || false はfalse。
最後にfalse & trueはfalseとなります。

 

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

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search