为什么必须在for循环的花括号之外定义count变量?

时间:2019-09-01 09:08:21

标签: java loops

在下面的两种方法中,当我在for循环花括号外使用count变量时,得到的结果不同。有人可以告诉我为什么吗?

第一个循环仅打印三个i值。 所以我的问题是,为什么像我在第二种方法中所做的那样,不能在for循环的大括号中定义count变量。

public static void main(String[] args) {
    int count = 0;
    for (int i=0; i<5; i++) {

        System.out.println(i);
        count++;
        if (count == 3) {
            break;
        }
    }
}
public static void main(String[] args) {

    for (int i=0; i<5; i++) {
        int count = 0;
        System.out.println(i);
        count++;
        if (count == 3) {
            break;
        }
    }
}

2 个答案:

答案 0 :(得分:0)

这是因为在第二个循环中,它将int count设置为0,然后count++count递增1,因此每次等于1。将循环i递增1,将再次发生相同的事情(将int count设置为0,然后递增1,然后...),因此i将保持递增直到达到值4并退出for loop,但是在您的第一个for loop中,因为其中没有声明int countint count不会再次更改为0,并且因此它会增加1而不会重置为0,因此当count等于3时,您将退出for loop,因为您“告诉” for loop会中断当count==3

答案 1 :(得分:0)

因为count将在循环的每次迭代中重置为0(并且count在循环后也将不再可见)! 但是,您一开始就不需要count(因为您拥有icount实际上是i + 1,因此您将是三个之后循环)-

for (int i=0; i<5; i++) {
    System.out.println(i);
    if (i + 1 == 3) {
        break;
    }
}

for (int i=0; i<5; i++) {
    System.out.println(i);
    if (i == 2) {
        break;
    }
}