您如何将以下三元运算符转换为常规if语句?

时间:2012-11-06 18:00:11

标签: java

我正在阅读一些代码,我遇到了以下三元表达式。您如何将以下三元运算符转换为常规if语句?

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

6 个答案:

答案 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 "";
}

我猜原始代码有点不对劲。 vowelconsonant是布尔表达式,并且(如果我猜测代码正在做什么)语义上一个字母不能同时是一个元音和一个辅音。也就是说,"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 {
   ""
}