uml*_*uml 0 java boolean compilation
这是一段Java代码:
static boolean a; // gets false
static boolean b;
static boolean c;
public void printA(){
boolean bool = (a = true) || (b = true) && (c = true);
System.out.print(a + ", " + b + ", " + c);
}
Run Code Online (Sandbox Code Playgroud)
它没有编译,有什么问题?错误:此行上有多个标记; 'bool'变量行上的语法错误.我希望它能打印出来true, false, true.虽然根据我的教程书打印true, false, false.
我知道它会执行短路但是在&&双方都需要进行评估的情况下.那不是作业,我正在学习Java.干杯
(a = true) || (b = true) && (c = true);
Run Code Online (Sandbox Code Playgroud)
相当于: -
(a = true) || ((b = true) && (c = true));
Run Code Online (Sandbox Code Playgroud)
由于(a = true)被评估为true,因此不评估第二个表达式,因为你在那里使用短路运算符(||).
因此,最后两项任务不会发生.而价值b和c保持false.
注: -短路运营商- &&和||,如果某一结果可以通过之前的评测中获得不进一步评估.
所以: -
a && b如果a是假的,则不会评估b.
a || b如果a为真,则不会评估b.
| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |