java中变量的初始化与作用域

img

img


第一段代码编译成功,第二段代码显示未初始化a
但他们都是在for循环外声明,在for循环里初始化啊,为什么第二段就显示未初始化a,第一段则编译成功了呢

使用局部变量时要先初始化。
截图一中for循环第一个表达式一定会执行,也就是一定会初始化i=0
截图二中for循环中的循环体不一定会执行,所以可能未初始化。

img

a=3只是赋值,不叫初始化
int a=3才是初始化赋值

第二个:a未初始化,因为for循环是有可能不会执行的,所以相当于

       int a;
        System.out.println(a);

输出未初始化的变量,所以不行;

第一个,i是在for里面完成了初始化

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632