循环语句中的变量声明在Java中如何工作

public class Test1{
    public static void main(String[] args){
        int x = 3;
        do {
            int y = 1;
            System.out.print(y++ + " ");
            x--;
        } while(x >= 0);
    }
}

在上面的代码中,局部变量y在do while语句块的范围内.这对于循环的所有迭代均有效.那么,为什么Java在第一个迭代之后的后续迭代中不抛出错误“已经定义了变量Y”,因为我们在每次迭代中都重新声明了相同的变量?

最佳答案
变量x在循环的所有迭代范围内,变量y在循环的每个迭代范围内.

当执行超出{}括号时,y超出范围(并消失).因此,当评估while(x> = 0)时,y不在范围内.您可以通过尝试在条件中使用y进行测试,将看到一条错误消息,告诉您没有声明y变量.

转载注明原文:循环语句中的变量声明在Java中如何工作 - 代码日志