au PAY マーケット

Java (Bronze SE 7/8) 資格試験 Exercise14

Java (Bronze SE 7/8) 資格試験 Exercise14

練習問題1
1 class ComparingTest {
2  public static void main(String[ ] args) {
3   int a = 7, b = 5, c = 4, d = 6;
4
5   System.out.println((b >= d) && (a <= c++));
6   System.out.println(” : “);
7   System.out.println((c <= b) | (a == ++d));
8   System.out.println(” : “);
9   System.out.println(c + ” : ” + d);
10  }
11 }

01上記のコードを確認してください。
このコードをコンパイル、および実行すると、どのような結果になりますか。1つ選択してください。 A. false : true : 4 : 7
B. false : true : 5 : 7
C. false : true : 4 : 6
D. false : true : 5 : 6

(答え):A

(解説):論理演算子についての問題です。
●各選択肢の解説は、以下の通りです。

5行目では&&演算子を使用した比較を行っています。左辺はb >= dの式によりfalseとなります。&&演算子では左辺がfalseとなった時点で、右辺の結果に関係なく最終的な結果がfalseと確定しますので、右辺の処理は実行されません。

7行目では|演算子を使用した比較を行っています。左辺c <= bの式となりますが、cの値は初期値から変わっていませんので、4 <= 5となり、trueとなります。今回は|演算子となるため、左辺がtrueであっても右辺の処理を行いますので、a == ++dの式が実行され、比較の前に変数dに1がインクリメントされ、7==7となります。

よって、変数cは出力まで初期値の4、変数dは7行目で加算されているため7が出力されます。

したがって、実行結果は「false : true : 4 : 7」と出力されるため、選択肢Aが正解です。


練習問題2
1 class Operator {
2  public static void main(String[ ] args) {
3   boolean b1 = true, b2 = false, b3 = true;
4   System.out.println(b1 && b3 && b2 || b3);
5  }
6 }

02上記のコードを確認してください。
このコードをコンパイルコンパイル、および実行すると、どのような結果になりますか。1つ選択してください。 A. true
B. false
C. truefalsetrue
D. コンパイルエラーが発生する

(答え):A

(解説):演算子の優先順位についての問題です。
●各選択肢の解説は、以下の通りです。

4行目では、論理演算子を使用した比較を行っています。論理演算子は左結合のため評価式は左から順に判定されます。

よって、4行目の比較式は、最初にb1 && b3が評価されtrueになります。次にtrue && b2が評価されfalseになります。最後にfalse || b3が評価されてtrueになります。

したがって、実行結果は「true」と出力されるため、選択肢Aが正解です。


練習問題3
1 class Calc {
2  public static void main(String[ ] args) {
3   int a = 3;
4   int b = 5;
5   b += (a + a) * b;
6   a += b += a;
7   System.out.println(“a: ” + a + ” b: ” + b);
8  }
9 }

03上記のコードを確認してください。
このコードをコンパイル、および実行すると、どのような結果になりますか。一つ選択してください。 A. a: 35 b: 40
B. a: 43 b: 35
C. a: 41 b: 38
D. a: 35 b: 43

(答え):C

(解説):演算子の優先順位についての問題です。
●解説は以下の通りです。

  ( )で囲まれている部分は優先度が高くなります。

5行目では、最初にa + aが実行され6が求められます。次に6 * bが実行されて30が求められ、次にb += 30により変数bに35が代入されます。

6行目では三つの変数を+=演算子で結合した処理になっていますが、+=演算子は右結合になります。このため最初にb += aが実行され、変数bに38が代入されます。次にa += bが実行され変数aに41が代入されます。

したがって、7行目では「a: 41 b: 38」と出力されるため、選択肢Cが正解です。



 
 ※論理演算子の種類
 
演算子意味
&&左辺がfalseの時点で
右辺は実行しない
&左辺がfalseであったとし
ても、右辺の比較を実行
||左辺がtrueの時点で
右辺は実行しない
|左辺がtrueであったとし
ても、右辺の比較を実行

 
 
 ※演算子の優先順位
 
演算子優先度
++ -- + - ~ ! キャスト演算子
* / %|
+ -|
<< >> >>>|
< > <= >=
instanceof
|
|
== !=|
&|
^|
||
&&|
|||
?:
= *= /= %= += -= <<=
>>= >>>= &= ^= |=



 



恭喜你今天又向前迈进了一小步,明天继续加油哦!

如果你觉得这个网站对学习有帮助,希望你也能分享给身边的好友!

前の記事

例文-Lesson71

次の記事

我爱背单词#0025
ショップチャンネル