問題
以下のコードを実行した場合、xの値は何になりますか。
Boolean isOK;
Integer x;
String theString = 'Hello';
if (isOK == false && theString == 'Hello') {
x = 1;
} else if (isOK == true && theString =='Hello') {
x = 2;
} else if (isOK != null && theString == 'Hello') {
x = 3;
} else {
x = 4;
}- 1
- 2
- 3
- 4
正解
- 1
- 2
- 3
- 4
解説
デバッグログには 4 が表示されます。
以下がコードの実行フローです。
isOKの初期値は設定されていないため、nullです。theStringの初期値は'Hello'です。- 最初の
if条件isOK == false && theString == 'Hello'を評価します。isOKはnullなので、この条件はfalseとなります。 - 次に
else if条件isOK == true && theString =='Hello'を評価します。isOKはnullなので、この条件もfalseとなります。 - さらに次の
else if条件isOK != null && theString == 'Hello'を評価します。isOKはnullなので、この条件もfalseとなります。 - 3つの条件がすべて
falseなので、最後のelseブロックが実行されます。 xに4が代入されます。
// 変数の初期化
Boolean isOK; // isOKの初期値は設定されていないため、nullです。
Integer x;
String theString = 'Hello'; // theStringの初期値は'Hello'です。
// 最初の条件チェック: isOK が false かつ theString が 'Hello' か
// isOKはnullなので、この条件はfalseとなります。
if (isOK == false && theString == 'Hello') {
x = 1;
}
// 2番目の条件チェック: isOK が true かつ theString が 'Hello' か
// isOKはnullなので、この条件もfalseとなります。
else if (isOK == true && theString =='Hello') {
x = 2;
}
// 3番目の条件チェック: isOK が null でないかつ theString が 'Hello' か
// isOKはnullなので、この条件もfalseとなります。
else if (isOK != null && theString == 'Hello') {
x = 3;
}
// 上記の条件がすべて false の場合
else {
// 3つの条件がすべてfalseなので、最後のelseブロックが実行されます。
x = 4; // xに4が代入されます。
}次の問題へ
あわせて読みたい


【Salesforce 認定Platformデベロッパー】試験対策:第180問
問題 アプリケーションイベントは従来のpublish-subscribeモデルに従っています。イベントを発生させるには、どのメソッドを使用しますか。 emit() fireEvent() fire() …
前の問題へ
あわせて読みたい


【Salesforce 認定Platformデベロッパー】試験対策:第178問
問題 ある開発者が、StatusComponentというLightning Webコンポーネントを作成し、Accountレコードページに挿入しました。このコンポーネントを利用できるようにするた…
1問目から復習する
あわせて読みたい


【Salesforce 認定Platformデベロッパー】試験対策:第1問
問題 デバッグログに書き込まれるときのxの値は何ですか。 Integer x = 0; do { x = 1; x++; } while (x < 1); System.debug(x); 0 1 2 3 正解 0 1 2 3 解説 デバッ…

コメント