Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不理解模数是如何工作的(Eclipse)_Java_Modulus - Fatal编程技术网

Java 不理解模数是如何工作的(Eclipse)

Java 不理解模数是如何工作的(Eclipse),java,modulus,Java,Modulus,我刚刚开始一个Java入门教程,已经有一个关于什么(在我看来)是奇怪行为的问题。有人能澄清一下我是如何错误地看待这个工具的吗 为什么不输出奇数: for (int i = 0, j = 0; i < 100; ++i){ if ( i % 2 != 0){ System.out.print(i + "\t"); } ++i; ++j; if (j

我刚刚开始一个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){
如果(i%2!=0){
系统输出打印(i+“\t”);
}
++i、 ++j;
如果(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){
如果(i%2==0){
系统输出打印(i+“\t”);
}
++i、 ++j;
如果(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){
如果(i%2>0){
系统输出打印(i+“\t”);
}
++i、 ++j;
如果(j>=10){
System.out.println();
j=0;
}
}

因为您要将
i
增加两次,第一次是在
中,第二次是在
if
之间。因此,您的
i
仅循环通过偶数。删除第二个增量,它将按预期工作


同时,你的
j
只增加一次,因此你应该每行观察10个数字。

因为你将
i
增加两次,第一次在你的
for
中,第二次在
if
之间。因此,您的
i
仅循环通过偶数。删除第二个增量,它将按预期工作


同时,你的<代码> j>代码>只增加一次,所以你应该遵守每行10个数字。

你每次递增<代码> i<代码>两次循环——一次在<代码> < <代码>循环本身,一次在身体的中间。

最终的结果是,如果(i%2!=0){
,当您到达
时,
i
本身只有偶数(0,2,4,…)

删除
i的体内增量
;仅在
循环本身的
中增加。更改

++i;  ++j;


你每次递增<代码> i <代码>两次循环——一次在<代码> < <代码>循环本身,一次在身体的中间。

最终的结果是,如果(i%2!=0){
,当您到达
时,
i
本身只有偶数(0,2,4,…)

删除
i的体内增量
;仅在
循环本身的
中增加。更改

++i;  ++j;


您的主要问题是“i++”在每个循环迭代中出现两次,因此只考虑i的其他每一个值(即偶数)。请从循环体中删除i++。

您的主要问题是“i++”在每个循环迭代中出现两次,因此仅考虑i的其他每一个值(即偶数)从循环体中删除I++。

你在循环的每次迭代中都会增加
I
两次;删除
I++
表达式中的一个。你在循环的每次迭代中都会增加
I
两次;删除
I++
表达式中的一个。哇..这是难以置信的短视我。谢谢你们的澄清。我会点击第一个答案作为正确答案。哇..我真是太短视了。谢谢你们的澄清。我会点击第一个答案作为正确答案。