如果一个数字可以被两个数字整除但不能被 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整除。

有两个问题:

  1. 您将它们与 合并,而不是 (&&)
  2. 你检查它是否能被[=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");
}