为什么我们在第二个 println 上得到 1 作为余数?

Why do we get 1 as remainder on the second println?

package PracticePackage;

public class whileLoop {

    public static void main(String[] args) {

        int i=1;

        System.out.println("Quotient "+i/2);    
        System.out.println("Remainder "+i%2);

    }

}

因为整数不是实数,所以你得到 1 作为答案,余数的实部被忽略,因为你将 i 定义为整数

这是 Java 用来产生其操作数余数的公式:

(a/b)*b+(a%b)

其中 a 是被除数,b 是除数。

所以你的情况是这样的:

int i = 1; 
int b = 2;
int result = (i / b) * b + (i % b);

因此结果是 1 而不是 0

1/2 = 0.5

您将 i 定义为 int

如果答案是实数,java中的整数除法会取答案,因此 1/2 变为 0,使 1%2 等于 1

我希望解释清楚。