1

いくつかのコードを読んでいて、次の3値式に遭遇しました。次の三項演算子を通常のifステートメントにどのように変換しますか?

 ( (vowel) ? ((consonant) ? "ay" : "yay") : "")
4

6 に答える 6

6

このようなもの:

if(vowel) {
    if(consonant) {
        return "ay"
    } else {
        return "yay"
    }
} else {
    return ""
}

return三項演算子は式であり、Javaではステートメントであるため、使用していることに注意してくださいif。したがって、値がありません。これを、を返すメソッドでラップする必要がありますString

于 2012-11-06T18:01:22.893 に答える
1

裏返しに作業します。

if (vowel) {
    if (consonant) {
        return "ay";
    } else {
        return "yay";
    }
} else {
    return "";
}

元のコードはどういうわけか間違っていると思います。vowelconsonantはブール式であり、(コードが正しく機能していることを推測している場合)意味的には、文字を母音と子音の両方にすることはできません。つまり、"ay"ケースは呼び出されません。

于 2012-11-06T18:02:35.950 に答える
1

これは次のように解釈されます。

 String result = "";
    if (vowel) {
        if (consonant) {
            result = "ay";
        } else {
            result = "yay";
        }
    } else {
        result = "";
    }
于 2012-11-06T18:02:57.280 に答える
1

これは、ネストされたifよりも意図をよりよく伝えると思います。

String str = "";
if(vowel && consonant) {
    str = "ay";
} else if(vowel) {
    str = "yay"
}
于 2012-11-06T18:04:41.297 に答える
1

こんな感じになります

String ans = null;
if(vowel)
        {
            if(consonant)
            {
                ans="ay";
            }
            else
            {
                ans="yay";
            }
        }
        else
        {
            ans="";
        }
于 2012-11-06T18:06:52.630 に答える
1

条件の周りの()、(母音)と(子音)を除いて、置き換えます

"(" by "if"
"?" by "{"
":" by "} else {"
")" by "}"

そして、あなたは得るでしょう:

if (vowel) { if (consonant) { "ay" } else { "yay" } } else { "" }

これを美化器に通すか、独自の典型的なインデントを追加すると、次のようになります。

if (vowel) {
   if (consonant) {
      "ay"
   } else {
      "yay"
   }
} else {
   ""
}
于 2012-11-06T18:08:37.010 に答える