問題
以下のコードを実行した場合、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 解説 デバッ…
コメント