Java条件运算符三种可能的结果

如何将您在下面看到的条件代码分解为常规if语句以了解其工作原理,因为它具有三个结果。


我改变了价值观只是为了看看它的去向:


System.out.print(("A"=="A")?("B"=="B")?"1":"2":"3");



 /*

 if A is False (Output = 3)

 if B is False (Output = 2)

 if A&B are True (Output = 1)

 */


人到中年有点甜
浏览 91回答 3
3回答

qq_花开花谢_0

条件(三元)运算符以下列方式工作:(谓词)?(onTrueValue) : (onFalseValue);所以在你的情况下,我们拥有的是:("A"=="A" ? ("B"=="B" ? "1" : "2") : "3");哪个评估为:Is A equal to A? If yes -> return Is B equal to B    If yes -> return 1;    If no -> return 2;If no -> return 3;如同:condition1 ? (condition2 ? val1 : val2) : val3;以及一些验证测试// Prints 1 as both conditions are true.System.out.println("A"=="A" ? ("B"=="B" ? "1" : "2") : "3");// Prints 3 as first condition fails.System.out.println("A"=="notA" ? ("B"=="B" ? "1" : "2") : "3");// Prints 2 as second condition fails.System.out.println("A"=="A" ? ("B"=="notB" ? "1" : "2") : "3");另请注意,您正在使用==运算符来比较字符串。在这种特殊情况下,这不会有任何区别,只是谨慎使用它......

FFIVE

您的代码可以这样拆分:String message;if ("A" == "A") {    if ("B" == "B") {        message = "1";    } else {        message = "2";    }} else {    message = "3";}System.out.print(message);三元运算符的工作方式类似于if返回值的 - 语句。但是它只能是一个表达式可以站立的地方,所以它不能单独站立。前面的部分?是条件,后面的部分是 then 表达式。后面:是else 表达式。嵌套的三元运算?:符非常难读,绝对应该避免。

哈士奇WWW

如果我理解正确并且 A、B 和 C 是布尔值,那么这可能就是您想要的:System.out.print( ((!A)? "3" : (!B)? "2" : "1"));对于字符串,您必须确保使用 A.equals(B)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java