为什么语法错误出现在以下if条件中

时间:2013-08-23 22:32:36

标签: java

嗨,我在java中有以下if条件

if ((i%3)==0)
    do some work
else if ((i%3 || i%5)==0)----syntax error appears on this line
    do some work

它向我显示以下语法错误... 此行有多个标记      - 运营商||对于参数是未定义的      type(s)int,int      - 令牌“OR”上的语法错误,。预期      - 我无法解决或不是一个领域

任何人都可以告诉我如何解决这个问题?

4 个答案:

答案 0 :(得分:6)

您无法指定多个条件。 ||运算符仅对boolean值进行操作;它不能按照您希望的方式操作数字。您必须单独指定每个条件:

else if ((i%3 == 0) || (i%5 == 0))

在英语中,我们会说" i是3或5"的倍数。我们会知道你的意思。它在Java中并没有这样的工作方式。你必须更明确。所需的Java代码等同于" i是3的倍数,或i是5"的倍数。

答案 1 :(得分:1)

您必须与条件的每个部分进行比较。在这种情况下,您的else if应该如下所示

else if (i%3 == 0 || i%5 == 0)

答案 2 :(得分:0)

||运算符只能用于bool类型。 i%3是一个整数。

答案 3 :(得分:0)

逻辑运算符只能应用于布尔条件。你正在应用两个整数的OR条件。如果你的i是10,那么i%3 = 1而i%5 = 0.那么你正在评估(1 || 0)。如果你真的想这样做那么你应该使用按位运算符(|)。否则,请使用已在第一个if部分中使用的括号。所以它将是

else if((i%3 == 0) || (i%5 == 0))

or

else if((i%3 | i%5) == 0)

由于