两张图片上为什么有些需要初始定义 有些不用

img

img


为什么有的需要定义之后给她定义初始值为o,有些就不用呢?这是为什么呀

要不要初值都是看逻辑关系的
如果你定义一个sum变量,用来做累加,那就必须初始化成0,否则sum=sum+a;一个没赋值的变量是不能进行计算的,你没法知道sum+a是多少
第二张图,虽然没有给month赋初始值,但是把控制台输入的值给它了
反正总之就是用之前必须先赋值,但是不一定在定义的时候赋值
int a;
//代码
//代码
//代码
a=0;
这样也没问题的,只要给a赋值之前别取值就没问题。

那要看你的变量是干什么用的,如果单纯是赋值,后面会赋值,覆盖前面的值,那初步初始化就没什么关系
如果一个变量用来累加,后面会将某个值加到这个变量上面,那你就得记得初始化

因为只是把定义和赋值分开写了,month下面也有赋值, month=sc.nextInt();