Gom*_*ino 7 java syntax ternary-operator
请不要看这里的状况,以便减轻对行为的理解
为什么结果等于真?
boolean result = false && (false)?false:true;
Run Code Online (Sandbox Code Playgroud)
我知道我们可以解决这个问题:
boolean result = false && (false?false:true);
Run Code Online (Sandbox Code Playgroud)
但我只是想知道为什么第一个语法不正确,看起来像'?' 运营商优先于'&&'
Bat*_*eba 14
所述三元条件(?:)具有较低的优先级比&&.所以
boolean result = false && (false)?false:true;
Run Code Online (Sandbox Code Playgroud)
(有不必要的括号); 相当于
boolean result = (false && false) ? false : true;
Run Code Online (Sandbox Code Playgroud)
由于(自false && falseIS false),这减少了
boolean result = false ? false : true;
Run Code Online (Sandbox Code Playgroud)
当然,这是true.
1)&&(逻辑与)
说明:-比较两个表达式,并且仅当两个表达式都为true时才返回true。如果一个或两个评估为false,则返回false。
以下列表显示了所有可能的组合:
true && false // Evaluates false because the second is false
false && true // Evaluates false because the first is false
true && true // Evaluates true because both are true
false && false // Evaluates false because both are false
Run Code Online (Sandbox Code Playgroud)
句法
expression1 && expression2
2)|| (逻辑或)
描述:-比较两个表达式,如果一个或两个都为true,则返回true。仅当两个表达式均为false时才返回false。
以下列表显示了所有可能的组合:
true || false // Evaluates true because the first is true
false || true // Evaluates true because the second is true
true || true // Evaluates true because both are true
false || false // Evaluates false because both are false
Run Code Online (Sandbox Code Playgroud)
句法
表达式1 || 表达式2