0

嗨,我在 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

它向我显示了以下语法错误......这一行有多个标记 - 运算符 || 未定义参数类型 int, int - 标记 "OR" 上的语法错误,. 预期 - 我无法解决或不是一个字段

谁能告诉我如何解决这个问题?

4

4 回答 4

6

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

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

在英语中,我们会说“i是 3 或 5 的倍数”,我们会知道您的意思。它在 Java 中不是这样工作的。你必须更明确。所需的 Java 代码相当于“i是 3i的倍数还是 5 的倍数”。

于 2013-08-23T22:34:04.340 回答
1

您必须与条件的每个部分进行比较。在这种情况下,您else if应该看起来像这样

else if (i%3 == 0 || i%5 == 0)
于 2013-08-23T22:34:36.067 回答
0

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

于 2013-08-23T22:34:32.790 回答
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)

谢谢

于 2013-08-24T03:28:26.720 回答