首页 > 解决方案 > 是否可以在“if 语句”中为单个变量提供多个整数值以进行检查

问题描述

我对如何从 NetBeans 收到“非法的表达式开头...不是语句”错误感到困惑。我正在用 Java 编写代码,但对它还是很陌生。

长话短说,我想知道是否有一种方法可以检查单个变量的多个整数值(不确定我的措辞是否正确。)这是我的代码,它返回的错误在第一段中提到:

 if (month == 1) && (month == 3) && (month == 5) && (month == 7) && (month == 8) && (month == 10) && (month == 12)

这是我第一次使用瞄准器,如果格式不正确,我深表歉意。

标签: javaif-statementint

解决方案


  1. 语法正确的 java if 语句需要一对括号if (...),但您写了很多对if (...)(...)...。这就是语法错误的来源。

  2. AND (&&) 是错误的逻辑运算符。OR (||) 将是正确的运算符。

可能的解决方案:

if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)

if ((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12))

或者使用 switch case 语句:

switch (month) {
    case 1:  // do something ...;
             break;
    case 3:  // do something ...;
             break;
    case 5:  // do something ...;
             break;
    case 7:  // do something ...;
             break;
    case 8:  // do something ...;
             break;
    case 10: // do something ...;
             break;
    case 12: // do something ...;
             break;
    default: // month is not in one if the given values;
             break;
}

或者你可以使用一个循环:

int[] values = {1,3,5,7,8,10,12};
for (int i : values) {
    if (month == i) {
        // do something ...
    }
}

推荐阅读