いくつかのコードを読んでいて、次の3値式に遭遇しました。次の三項演算子を通常のifステートメントにどのように変換しますか?
( (vowel) ? ((consonant) ? "ay" : "yay") : "")
いくつかのコードを読んでいて、次の3値式に遭遇しました。次の三項演算子を通常のifステートメントにどのように変換しますか?
( (vowel) ? ((consonant) ? "ay" : "yay") : "")
このようなもの:
if(vowel) {
if(consonant) {
return "ay"
} else {
return "yay"
}
} else {
return ""
}
return
三項演算子は式であり、Javaではステートメントであるため、使用していることに注意してくださいif
。したがって、値がありません。これを、を返すメソッドでラップする必要がありますString
。
裏返しに作業します。
if (vowel) {
if (consonant) {
return "ay";
} else {
return "yay";
}
} else {
return "";
}
元のコードはどういうわけか間違っていると思います。vowel
とconsonant
はブール式であり、(コードが正しく機能していることを推測している場合)意味的には、文字を母音と子音の両方にすることはできません。つまり、"ay"
ケースは呼び出されません。
これは次のように解釈されます。
String result = "";
if (vowel) {
if (consonant) {
result = "ay";
} else {
result = "yay";
}
} else {
result = "";
}
これは、ネストされたifよりも意図をよりよく伝えると思います。
String str = "";
if(vowel && consonant) {
str = "ay";
} else if(vowel) {
str = "yay"
}
こんな感じになります
String ans = null;
if(vowel)
{
if(consonant)
{
ans="ay";
}
else
{
ans="yay";
}
}
else
{
ans="";
}
条件の周りの()、(母音)と(子音)を除いて、置き換えます
"(" by "if"
"?" by "{"
":" by "} else {"
")" by "}"
そして、あなたは得るでしょう:
if (vowel) { if (consonant) { "ay" } else { "yay" } } else { "" }
これを美化器に通すか、独自の典型的なインデントを追加すると、次のようになります。
if (vowel) {
if (consonant) {
"ay"
} else {
"yay"
}
} else {
""
}