我正在运行for循环,在我的循环中我有以下内容:
for(int i = 0; i < 12; i = i + 2){
System.out.println("i = " + i);
System.out.print("3 - i % 3 (i is at " + i + ") = " + (3 - i % 3));
System.out.println();
System.out.println("3 - i (" + (i) + ") = " + (3 - i));
}
我确实理解Modulus如何正常工作或正数,但我不明白它如何与负整数一起工作? 有人可以向我解释一下吗?
非常感谢。
答案 0 :(得分:2)
a mod b
非常适用于正整数a
和b
。如果a
或b
为否定怎么办?有三种选择与基本定义一致:
a mod b
总是积极的。a mod b
与a
具有相同的符号。a mod b
与b
具有相同的符号。不同的语言将选择这三种选择之一。没有单一的正确答案。
答案 1 :(得分:1)
4 % 3 == 1
-4 % 3 == -1
4 % -3 == 1
-4 % -3 == -1
更改第一个数字的符号会更改结果的符号。第二个数字的符号无关紧要。
在许多语言(C,C ++,Java,Javascript)中都是如此,但并非所有语言(Python,Ruby)都是如此。