如果一个数字可以被两个数字整除但不能被 java 中的三分之一整除,我该如何显示该数字?
How can I display a number if it's divisible by two numbers but not a third in java?
如果一个数字可以被两个数字整除但不能被 java 中的三分之一整除,我该如何显示?我不确定与下面代码的这部分 || ((a % 4) == 0))
有关的最后一个运算符是否正确。
int a = 15;
if ((( a % 5) == 0) || ((a % 10) == 0) || ((a % 4) == 0)) {
System.out.println("Number entered is divisible by 5 and 10 but not 4");
} else {
System.out.println("ERROR");
}
说明
你的条件不对。让我解释一下你的情况用英语是什么意思。您写了:
(( a % 5) == 0) || ((a % 10) == 0) || ((a % 4) == 0)
也就是说a
可以被5
整除或者可以被10
整除或能被4
整除。
有两个问题:
- 您将它们与 或 合并,而不是 和 (
&&
)
- 你检查它是否能被[=16=整除],而不是不能能被
4
整除(!= 0
)
解决方案
正确的条件是:
a % 5 == 0 && a % 10 == 0 && a % 4 != 0
备注
由于运算符的优先级,可以删除括号(请参阅 official tutorial)。
请注意 a % 10 == 0
已经暗示了 a % 5 == 0
。因此,对于那些特定的数字,您可以将条件简化为:
a % 10 == 0 && a % 4 != 0
将 ||
更改为 &&
,将 (a % 4) == 0)
更改为 (a % 4) != 0)
您需要正确使用 if 条件,使用 && 而不是 ||如下所示,
您还可以通过不检查 %10==0 条件来提高代码效率,因为这是多余的(任何不能被 10 整除的也可以被 5 整除)
试试下面的代码。这应该有效。
int a = 15;
if ( (a%5 == 0) && (a%4 != 0)) {
System.out.println("Number entered is divisible by 5 and 10 but not 4");
} else {
System.out.println("ERROR");
}
如果一个数字可以被两个数字整除但不能被 java 中的三分之一整除,我该如何显示?我不确定与下面代码的这部分 || ((a % 4) == 0))
有关的最后一个运算符是否正确。
int a = 15;
if ((( a % 5) == 0) || ((a % 10) == 0) || ((a % 4) == 0)) {
System.out.println("Number entered is divisible by 5 and 10 but not 4");
} else {
System.out.println("ERROR");
}
说明
你的条件不对。让我解释一下你的情况用英语是什么意思。您写了:
(( a % 5) == 0) || ((a % 10) == 0) || ((a % 4) == 0)
也就是说a
可以被5
整除或者可以被10
整除或能被4
整除。
有两个问题:
- 您将它们与 或 合并,而不是 和 (
&&
) - 你检查它是否能被[=16=整除],而不是不能能被
4
整除(!= 0
)
解决方案
正确的条件是:
a % 5 == 0 && a % 10 == 0 && a % 4 != 0
备注
由于运算符的优先级,可以删除括号(请参阅 official tutorial)。
请注意 a % 10 == 0
已经暗示了 a % 5 == 0
。因此,对于那些特定的数字,您可以将条件简化为:
a % 10 == 0 && a % 4 != 0
将 ||
更改为 &&
,将 (a % 4) == 0)
更改为 (a % 4) != 0)
您需要正确使用 if 条件,使用 && 而不是 ||如下所示, 您还可以通过不检查 %10==0 条件来提高代码效率,因为这是多余的(任何不能被 10 整除的也可以被 5 整除) 试试下面的代码。这应该有效。
int a = 15;
if ( (a%5 == 0) && (a%4 != 0)) {
System.out.println("Number entered is divisible by 5 and 10 but not 4");
} else {
System.out.println("ERROR");
}