Java for循环继续

时间:2017-05-19 06:40:34

标签: java for-loop continue

if i++ = 11,这将结束for循环,但我很困惑为什么i = 11将被存储并在下一个println打印出来

public class kkk {
    public static void main(String args[]) {
        int i;
        for (i = 1; i < 11; i++) {
            if (i > 5)
                continue;
            System.out.println(i);
        }
        System.out.println(i);
    }
}

9 个答案:

答案 0 :(得分:2)

为了解释for循环的逻辑,我们将它与while

进行比较
for (
    i = 1;   //Block of initialisation
    i < 11;  //condition
    i++      //Block of incrementation

){
    if (i > 5)
        continue;
    System.out.println(i);
}

这看起来像

{ //Block of initialisation
    i = 1
}
while(i < 11){ //condition
    { //Block of code
        if (i > 5)
            continue;
        System.out.println(i);

    }
    { //Block of incrementation
        ++i;
    }
}

在这里,您将看到for循环的每个块的顺序。确实,i在退出循环时将等于11

注意: 块语句并不存在,它用于显示所有内容的存在位置。因为当然,初始化中的变量声明不会存在于块

之外

答案 1 :(得分:1)

因为你声明{for循环范围之外的i变量,意味着即使在for循环结束后它也将零售它的值。

显然,当i的值为11时,循环结束,因此在循环之后它打印11

答案 2 :(得分:1)

基本上是因为for循环的工作原理。

i == 10它将完成工作(在您的情况下打印i,但它不会退出循环。

之后,它将增加为11,使条件i < 11无效,然后它将退出循环。

答案 3 :(得分:1)

循环的终止条件不是i++ == 11,而是i < 11。在检查条件之前,在循环结束后进行递增。

将自己与这种循环进行比较

int i = 0;
while (i++ < 11) {
    if (i > 5)
        continue;
    System.out.println(i);
}
System.out.println(i);

答案 4 :(得分:1)

一旦i的实际值不再小于11,循环就会终止。

在您的示例中,我将从1开始,然后在每次迭代时继续递增。当i等于10时,循环执行时它将增加到11。此后,当检查循环条件时,i已经等于11。因此,循环终止于println()打印出11 - i的当前值。

答案 5 :(得分:1)

   int i; // A
   for (i = 1; i < 11; i++) {
       if (i > 5)
           continue;
       System.out.println(i);
   }
   System.out.println(i); // B

在B行中,您打印的是i的值,不是吗?

在for循环结束后,

i的值不会消失。 for循环结束后,i存储11,因此它将继续存储11,直到您更改它为止。

这是因为在A行中,您声明了i。如果您在for循环中再次声明i,则循环中的i与循环外的i不同i,并且不会具有值{ {1}}。

答案 6 :(得分:1)

当main方法运行时,初始值为1,但当end for loop i = 11时,解释器将结束System.out.println(i);

enter image description here

int i; // initial value 1
        for (i = 1; i < 11; i++) {
            if (i > 5)
                continue;
            System.out.println(i);
        }
// now i value is 11 so system out printed 11
        System.out.println(i);
    }

答案 7 :(得分:-1)

你在for循环外面有一个println(),它打印11。

答案 8 :(得分:-1)

public class kkk {
    public static void main(String args[]) {
        int i;
        for (i = 1; i < 10; i++) {
            if (i > 5)
                continue;
            System.out.println(i);
        }
        System.out.println(i);
    }
}

试试这个。它会告诉你程序是如何执行的。