繁体   English   中英

需要基本的for循环解释

[英]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%5j相同。

但是,由于乘法运算符和模运算符具有相同的优先级,因此表达式i*j%5从左到右分组,即它被评估为(i * j) % 5而不是,正如你似乎假设的那样,因为i * (j % 5)

根据优先顺序,乘法将在除法之前进行,所以这就是你不会得到零的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM