[英]boolean equality operator in If statement
我正在尝试创建一个if语句,其中X可能等于多个值。 基本上,我想要类似
if(month == (2||4||6||9||11));
但是,我不能这样做,因为int不能与“ ||”一起使用 操作员。 我想知道如何创建一个if语句。
您不能以这种方式使用它,因为||
运算符需要boolean
操作数(并且您正在使用整数)。
您的替代方法是:
if
语句: if (month == 2 || month == 4 || month == 6 || month == 9 || month == 11) {
// your stuff here
}
switch
语句到秋季 : switch (month) {
case 2:
case 4:
case 8:
case 9:
case 11:
// your stuff here
break;
default:
// do nothing
break;
}
(但是使用时要格外小心,有些人可能会认为这是一种不好的做法-因为它会使您的代码意图不那么清楚。)
contains()
方法: if (java.util.Arrays.asList(2, 4, 6, 9, 11).contains(month)){
// your stuff here
}
当然,使用一种或其他方式取决于个人意见和操作数。
不过,作为代码可读性的补充说明,我的建议是获取该表达式的含义并为此创建一个方法,这将使您的代码更易于理解和维护。
因此,假设这些月份是“全价”(或对您的业务规则有意义的月份)的月份。 我会用:
if (isFullPricedMonth(month)) {
// your stuff here
}
当然,该方法(带有以前发布的任何解决方案):
public boolean isFullPricedMonth(int month) {
return month == 2 || month == 4 || month == 6 || month == 9 || month == 11;
}
int a = 2;
if (a == 3 || a == 4) {
//do stuff
}
List<Integer> months = Arrays.asList(2, 4, 6, 9, 11);
if(months.contains(month)){
// do something
}
您必须将每个值与月份进行比较,并用||
将它们分开。
if(month == 2 ||month == 4 ||month == 6 ||month == 9 ||month == 11);
我建议您使用switch
语句。
switch (month){
case 2:
case 4:
case 6:
case 9:
case 11:
//do stuff here
}
您可以问汽车英语是黑色还是白色。 您不能使用大多数编程语言来执行此操作。 在编程语言中,您必须询问汽车是黑色还是白色:
if(month == 2 || month == 4 /* || month == ... */ )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.