Java 使用if和continue进行的迭代 publicstaticvoidmain(字符串[]args){ int b=0,i; 对于(i=0;i

Java 使用if和continue进行的迭代 publicstaticvoidmain(字符串[]args){ int b=0,i; 对于(i=0;i,java,iterator,Java,Iterator,在i开始时4或9的循环迭代没有发生,因为++i添加到i行b++=+i;中的,但这并不能阻止循环增量操作i++的发生。这是真正的迭代顺序: 迭代0,i=0,b=0(0%5=0,继续;) 迭代1,i=1,b=0(1%5=1,继续;) 迭代2,i=2,b=0(2%5=2,继续;) 迭代3,i=3,b=4(3%5=3,b++i;,i现在是4) 迭代4,i=5,b=4(5%5=0,继续;) 迭代5,i=6,b=4(6%5=1,继续;) 迭代6,i=7,b=4(7%5=2,继续;) 迭代7,i=8,b=1

i
开始时
4
9
的循环迭代没有发生,因为
++i
添加到
i
b++=+i;
中的
,但这并不能阻止
循环增量操作
i++
发生。这是真正的迭代顺序:

  • 迭代0,i=0,b=0(0%5=0,继续;)
  • 迭代1,i=1,b=0(1%5=1,继续;)
  • 迭代2,i=2,b=0(2%5=2,继续;)
  • 迭代3,i=3,b=4(3%5=3,b++i;,i现在是4)
  • 迭代4,i=5,b=4(5%5=0,继续;)
  • 迭代5,i=6,b=4(6%5=1,继续;)
  • 迭代6,i=7,b=4(7%5=2,继续;)
  • 迭代7,i=8,b=13(8%5=3,b++i;,i现在是9)

你在两次递增
i
。哦,我明白了,所以i的值也会随着递增而改变。谢谢!
5%n
必须是
n%5
@saka1029我甚至没有注意到问题中的顺序是错误的!我已经在回答中更正了它。
    public static void main(String[] args) {
    int b = 0, i;
    for (i = 0; i < 10; i++) {
        if (i % 5 <= 2) {
            continue;
        }
        b += ++i;
    }
    System.out.print(b);