所以我有这些if语句,我有2个问题。首先是有一种方法可以将这些语句组合成1大条件。此外,我想知道是否有一种方法可以使条件为真,然后自动结束方法。我实际上并不想说“没有货运列车”,如果if语句为真,我想结束方法。
public void rule4(ArrayList<Integer> dierolled){
if (dierolled.contains(1)){
System.out.println("no freight train");
}
if (dierolled.contains(3)){
System.out.println("no freight train");
}
if (dierolled.contains(10)){
System.out.println("no freight train");
}
}
答案 0 :(得分:3)
假设您使用的是Java 8+,您可以使用dierolled
列表中的元素流()并检查是否有任何匹配项。如果是这样,return;
- 否则在有“货运列车”时要做你想做的事。像,
public void rule4(ArrayList<Integer> dierolled) {
if (dierolled.stream().anyMatch(x -> x == 1 || x == 3 || x == 10)) {
return;
}
System.out.println("freight train");
}
答案 1 :(得分:1)
public void rule4(ArrayList<Integer> dierolled){
if (dierolled.contains(1) || dierolled.contains(3) || dierolled.contains(10))
return;
}
或者如果需要在某处使用它,则返回布尔值:
public boolean rule4(ArrayList<Integer> dierolled){
return dierolled.contains(1) || dierolled.contains(3) || dierolled.contains(10)
}
答案 2 :(得分:1)
要合并if语句,请尝试以下方法:
if (dierolled.contains(1) || dierolled.contains(3) || dierolled.contains(10)) {
System.out.println("no freight train");
}
以上基本上是这样说的: 如果dierolled包含1 OR dierolled包含3 OR dierolled包含10则打印“no freight train”
if (dierolled.contains(1) && dierolled.contains(3) && dierolled.contains(10)) {
System.out.println("no freight train");
}
以上基本上是这样说的: 如果dierolled包含1 AND dierolled包含3 AND dierolled包含10则打印“no freight train”
要结束此方法,只需添加return;
答案 3 :(得分:0)
您只需要在结尾使用一个if语句<3> 和一个return
语句退出方法:
public void rule4(ArrayList<Integer> dierolled){
if (dierolled.contains(1) || dierolled.contains(3) || dierolled.contains(10)){
System.out.println("no freight train");
return;
}
}
答案 4 :(得分:0)
public void rule4(ArrayList<Integer> dierolled){
if (dierolled.contains(1)
|| dierolled.contains(3)
|| dierolled.contains(10)
)
{
return;
}
/* Other code can go here */
}
应该有效。您可能还想分析出“IF&#39;将条件纳入自己的可读性方法,例如private boolean noFreightTrain(List<Integer> dieRolled)