博主理解的三目运算
还是萌新小白的博主认为,三目运算和java逻辑中的if else 极为的相似,所以大家刚接触的时候完全可以把它认为就是if else!
想必大家一定都在代码中见过 a==b ? 1:0 这种的格式吧。
那么,他是怎么进行运算的呢?
在 ? 前面 返回给我们的基本上都是 true 或 false,当 ? 前面返回 true 的时候,就走 : 前面(左边)的代码 ,同理, ? 返回为false时, 就会执行 : 后面(右边) 的代码
话不多说,我们配合代码来理解它。
public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 1;
int result = a == b ? 1 : 0;
System.out.println(result);
int s = a == b ? 0 : a == c ? 3 : 4;
System.out.println(s);
}
第一段控制台输出 0 , 很显然,a==b 返回的为false 所以执行 : 后面的代码,顾result被赋值为0,
第二段控制台输出 3,这又是为什么呢,我们一步步分析。
首先,a==b 返回 false 执行冒号后面的 来到了 a==c ,再次返回 true 执行冒号前面的 ,顾得 将 3 赋值给 s。