我正在阅读一些代码,我遇到了以下三元表达式。您如何将以下三元运算符转换为常规if语句?
( (vowel) ? ((consonant) ? "ay" : "yay") : "")
答案 0 :(得分:6)
这样的事情:
if(vowel) {
if(consonant) {
return "ay"
} else {
return "yay"
}
} else {
return ""
}
请注意,我正在使用return
,因为三元运算符是表达式,而if
是Java中的语句,因此它没有值。您必须将此包装在返回String
。
答案 1 :(得分:1)
从内到外工作。
if (vowel) {
if (consonant) {
return "ay";
} else {
return "yay";
}
} else {
return "";
}
我猜原始代码有点不对劲。 vowel
和consonant
是布尔表达式,并且(如果我猜测代码正在做什么)语义上一个字母不能同时是一个元音和一个辅音。也就是说,"ay"
案例不会被调用。
答案 2 :(得分:1)
它转换为:
String result = "";
if (vowel) {
if (consonant) {
result = "ay";
} else {
result = "yay";
}
} else {
result = "";
}
答案 3 :(得分:1)
我认为这比嵌套的ifs更好地表达了意图:
String str = "";
if(vowel && consonant) {
str = "ay";
} else if(vowel) {
str = "yay"
}
答案 4 :(得分:1)
就像这样
String ans = null;
if(vowel)
{
if(consonant)
{
ans="ay";
}
else
{
ans="yay";
}
}
else
{
ans="";
}
答案 5 :(得分:1)
除了条件周围的(),(元音)和(辅音),替换
"(" by "if"
"?" by "{"
":" by "} else {"
")" by "}"
你会得到:
if (vowel) { if (consonant) { "ay" } else { "yay" } } else { "" }
如果您通过美化器运行它或只是添加您自己的典型缩进变为:
if (vowel) {
if (consonant) {
"ay"
} else {
"yay"
}
} else {
""
}