Java 支票号码是另一个号码的倍数

Java 支票号码是另一个号码的倍数,java,Java,我使用的余数运算符表示的数字是另一个数的倍数。如果第一个数字是3,第二个数字是15,那么 if (3 % 15 == 0) { } 那么它就工作了,不需要进入if。但现在若第一个数字是3,第二个数字是4000,那个么它不工作的条件仍然是真的 if (3 % 4000 == 0) { } 在这里,它不应该进入if的情况。但这里的条件是正确的。为什么会这样?如果仔细测试您的程序,您会发现在这两种情况下都不会执行If语句的主体 原因是你的论点是错误的 国际单项体育联合会应改为: if (400

我使用的余数运算符表示的数字是另一个数的倍数。如果第一个数字是3,第二个数字是15,那么

if (3 % 15 == 0) {

}
那么它就工作了,不需要进入if。但现在若第一个数字是3,第二个数字是4000,那个么它不工作的条件仍然是真的

if (3 % 4000 == 0) {

}

在这里,它不应该进入if的情况。但这里的条件是正确的。为什么会这样?

如果仔细测试您的程序,您会发现在这两种情况下都不会执行If语句的主体

原因是你的论点是错误的

国际单项体育联合会应改为:

if (4000 % 3 == 0) {
%运算符返回第一个参数除以第二个参数的余数。

%将返回a/b a除以b的余数


所以这里3%15和3%4000等于3

不能用小的数字除以大的数字。你有

if(3 % 4000==0){}
所以,在执行此类操作之前,您可以使用一个方法并向其传递2个数字,这将首先检查第一个数字是否大于或小于它将相应执行的数字。 i、 e


它可以很好地处理每个值,余数总是3,因此不会执行“if”。如果你想检查0,写“If”的更好方法是

if (!(3 % 4000)){
    // Code to execute
}
在这种情况下,它仅在余数为0时执行。并且还要检查变量类型一次


一种可能性是,如果您将其声明为有符号短整数0到127,并向其存储4000,则会发生溢出,并且变量值将设置为最小值,即0。因此,在您的例子中,它执行“if”。给你一个想法。

当a%b==0时,如果a>=b,则a是b的倍数


对于aif (!(3 % 4000)){ // Code to execute }