我刚刚开始学习 Java 入门教程,并且已经对什么(在我看来)奇怪的行为产生了疑问。有人可以澄清我如何错误地看待这个工具吗?
为什么不输出奇数:
for (int i = 0, j = 0; i < 100; ++i){
if ( i % 2 != 0){
System.out.print(i + "\t");
}
++i; ++j;
if (j >= 10){
System.out.println();
j = 0;
}
}
但这确实是偶数:
for (int i = 0, j = 0; i < 100; ++i){
if ( i % 2 == 0){
System.out.print(i + "\t");
}
++i; ++j;
if (j >= 10){
System.out.println();
j = 0;
}
}
即使这样也行不通:
for (int i = 0, j = 0; i < 100; ++i){
if ( i % 2 > 0){
System.out.print(i + "\t");
}
++i; ++j;
if (j >= 10){
System.out.println();
j = 0;
}
}
最佳答案
您正在递增i
每个循环两次——一次在 for
中循环自身,并在主体中间一次。
最终结果是i
当你到达 if ( i % 2 != 0){
时,它本身才是偶数 (0, 2, 4, ...) .
删除体内增量i
;仅在 for
中增加循环本身。改变
++i; ++j;
至
++j;
关于java - 不理解模数的工作原理(Eclipse),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108456/