alb*_*hin 33 java if-statement conditional-statements
好的,所以我测试了这段代码,发现没有任何异常被抛出.
public static void main(String[] args) {
int[] list = {1,2};
if (list.length>2 && list[3] == 2){
System.out.println(list[1]);
}
}
Run Code Online (Sandbox Code Playgroud)
声明在这里
if (list.length>2 && list[3] == 2)
Run Code Online (Sandbox Code Playgroud)
意味着如果第一个条件是假的,我们甚至不必检查第二个条件?
或者等于
if (list.length>2){
if (list[3] == 2){
...
}
}
Run Code Online (Sandbox Code Playgroud)
?
而且,如果它是用C或python或其他语言编写的呢?
谢谢
Ell*_*lle 51
AND如果第一个参数是,语言(Java和Python就是其中之一)通常会评估逻辑的第一个参数并完成对语句的评估false.这是因为:
当Java计算表达式d = b && c;时,它首先检查b是否为真.这里b为false,因此无论c是否为真,b && c都必须为false,因此Java不会检查c的值.
通常会看到list.count > 0 && list[0] == "Something"检查列表元素(如果存在).
值得一提的if (list.length>2 && list[3] == 2)是,这不等于第二种情况
if (list.length>2){
if (list[3] == 2){
...
}
}
Run Code Online (Sandbox Code Playgroud)
如果有else事后.该else条款仅适用于if附加的声明.
为了证明这个问题:
if (x.kind.equals("Human")) {
if (x.name.equals("Jordan")) {
System.out.println("Hello Jordan!");
}
} else {
System.out.println("You are not a human!");
}
Run Code Online (Sandbox Code Playgroud)
会按预期工作,但是
if (x.kind.equals("Human") && x.name.equals("Jordan")) {
System.out.println("Hello Jordan!");
} else {
System.out.println("You are not a human!");
}
Run Code Online (Sandbox Code Playgroud)
也会告诉任何Jordan不是人类的人.
从javadoc开始:
条件运算符
&&和|| 运算符对两个布尔表达式执行条件AND和条件OR运算.这些运算符表现出"短路"行为,这意味着仅在需要时才评估第二个操作数.
&& Conditional-AND || 有条件-OR
| 归档时间: |
|
| 查看次数: |
66559 次 |
| 最近记录: |