【Salesforce 認定Platformデベロッパー】試験対策:第179問

問題

以下のコードを実行した場合、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 が表示されます。

以下がコードの実行フローです。

  1. isOKの初期値は設定されていないため、nullです。
  2. theStringの初期値は'Hello'です。
  3. 最初のif条件isOK == false && theString == 'Hello'を評価します。isOKnullなので、この条件はfalseとなります。
  4. 次にelse if条件isOK == true && theString =='Hello'を評価します。isOKnullなので、この条件もfalseとなります。
  5. さらに次のelse if条件isOK != null && theString == 'Hello'を評価します。isOKnullなので、この条件もfalseとなります。
  6. 3つの条件がすべてfalseなので、最後のelseブロックが実行されます。
  7. x4が代入されます。
// 変数の初期化
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が代入されます。
}

次の問題へ

前の問題へ

1問目から復習する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

コメント

コメントする

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約が適用されます。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次