嗨,下面是我的程序,请你告诉我为什么第一个条件被执行?
package com;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String args[]) {
List<String> values = null;
String Id = "1234";
if (values != null && Id != null && values.size() > 1
&& !values.contains(Id)) {
// This is never executed
System.out.println("Throw Exception");
} else {
// This is always called
System.out.println("Fine");
}
}
}
答案 0 :(得分:1)
您始终以else
为例,因为values
为null
而您的if
条件需要values != null
。
也许您应该查看基本的Boolean Algebra,了解为什么if
条件不能为true
。
答案 1 :(得分:0)
庵:
List<String> values = null;
和
if (values != null && ...
您希望if
分支上的代码如何执行?
我认为你的意思是:
if (values != null && Id != null && values.size() > 1
&& !values.contains(Id)) {
System.out.println("Fine");
} else {
System.out.println("Throw Exception");
}
这样如果所有支票都保持不变,则表示“罚款”,否则会出现问题。
答案 2 :(得分:0)
值为NULL
。因此只会执行ELSE
部分。
那么这里的问题到底是什么?
我认为这实际上是你想要的
package com;
import java.util.ArrayList; import java.util.List;
public class Test {
public static void main(String args[]) {
List<String> values = null;
String Id = "1234";
// Some modification to values
if (values == null || Id == null || (values.size() > 1
&& !values.contains(Id))) {
System.out.println("Throw Exception");
} else {
System.out.println("Fine");
}
}
}
答案 3 :(得分:0)
由于值为null并且您检查的值不为null,因此它将始终执行else else
List<String> values = null;
String Id = "1234";
if (values != null && Id != null && !values.contains(Id)) {
// This is never executed
System.out.println("Throw Exception");
} else {
// This is always called
System.out.println("Fine");
}
答案 4 :(得分:0)
如果要执行条件,则根据条件
创建数据 List<String> values = new ArrayList<String>();
values.add("12345");
values.add("12345");
并且-1在发布SO之前没有付出足够的努力
答案 5 :(得分:0)
:
String test = "";
String test2 = "";
if(test.equal(test2)){
//something
}
else{
//something
}
在C#中我们使用:
String test = "";
String test2 = "";
if(test == test2){
//something
}
else{
//something
}
比较字符串..希望这有帮助。 :d