[英]Basic for loop explanation needed
for (int i =0; i<5;i++) {
for(int j=0; j<5; j++) {
System.out.print(i*j%5);
}
System.out.println();
}
我知道这个 Java 程序的 output 看起来像这样:
00000
01234
02413
03142
04321
但我不明白的是 function (i*j%5) 如何返回任何数字,因为 j 总是小于 5,所以不应该所有 j%5 = 0 因此使 i * 0=0 ?
更新:好的,现在我知道了
3%5 = 3
2%5= 2
4%5 = 4
根据 java。我最初假设因为 5 根本没有将 go 转换为 3(例如 3%5),那么模数将为 0。但我错了,java 必须将其读取为原始数字吗? 也感谢所有这么快回复的人 <3
您似乎混淆了模运算符和除法运算符:如果j
从 0 到 4,则j%5
与j
相同。
但是,由于乘法运算符和模运算符具有相同的优先级,因此表达式i*j%5
从左到右分组,即它被评估为(i * j) % 5
而不是,正如你似乎假设的那样,因为i * (j % 5)
。
根据优先顺序,乘法将在除法之前进行,所以这就是你不会得到零的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.