java - 怎么可能在循环内重新声明变量?

标签 java loops for-loop

此代码不起作用:

public class Test
{
    public static void main(String[] args)
    {
       int i=3;
       int i=4;
       System.out.println(i);   
    } 
}

那么为什么这段代码可以工作呢?

public class Test
{
    public static void main(String[] args)
    {
       for(int a=0;a<9;a++)
       {
           int b=a+1;
           System.out.println(b);
       }
    }
}

我们不是一次又一次地重新声明 b 吗?

最佳答案

循环的每次迭代都有自己的作用域,因此先前迭代的声明不再位于当前迭代的作用域内。

相当于写:

   {
       int b=1;
       System.out.println(b);
   }
   {
       int b=2;
       System.out.println(b);
   }
   {
       int b=3;
       System.out.println(b);
   }
   ....

关于java - 怎么可能在循环内重新声明变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26522095/

相关文章:

c - 无限循环直到按下键

c++ - 返回 map 循环的问题

sql - 日期之前的最新记录,按类别 : optimising

java - 为什么这个循环忽略我的指令?

java - 如何在运行多个服务时只获取一个 Redis 事件?

java - 如何在 ViewPager 的每个部分中使用 fragment

java - 2 行 ListView 未出现

java.io.IOException : HTTP response code: 400 for URL 异常

java - Android Studio 中使用 setOnClickListener 的循环

java - 如何在 JTextArea 中打印循环的结果?