2 haozibj haozibj 于 2016.03.05 09:56 提问

java初学者,求大神指点

int i = 0;
int sum;
while(i<100) {
sum =i;
sum+=i;
i++;

}
System.out.println(sum);

这是主方法里面运行的代码,错误信息提示输出行的sum未初始化,我不太懂,为什么,求高手指点

11个回答

fascinatingGirl
fascinatingGirl   2016.03.05 10:00

给sum赋值就ok了

fascinatingGirl
fascinatingGirl   2016.03.05 10:01

赋初值:int sum = 0;

haozibj
haozibj while循环里不是进行赋初值跟赋值操作了吗
接近 2 年之前 回复
baidu_34176409
baidu_34176409   2016.03.05 10:47

sum是局部变量吧,如果是全局变量的话就不用赋初值,会有默认值的,但是 局部变量在使用前必须初始化或者赋值

Leizi030017
Leizi030017   2016.03.05 10:08

int sum=0;
未进行赋值

haozibj
haozibj while循环里不是进行赋初值跟赋值操作了吗
接近 2 年之前 回复
qq_19558705
qq_19558705   Ds   Rxr 2016.03.05 10:11

java 和 c 是不一样的。int sum ; 这里应该会有一个黄色警告,只需在后面初始化就可以了。int sum = 0;

qq_19558705
qq_19558705 回复haozibj: 这是java的规则,没办法。赋值和初始化是不一样的。如果你连站的地方都没有,怎么去做事?
接近 2 年之前 回复
haozibj
haozibj while循环里不是进行赋初值跟赋值操作了吗
接近 2 年之前 回复
haozibj
haozibj   2016.03.05 10:12

while循环里不是进行赋初值跟赋值操作了吗

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.05 10:13

Java在编写方法是变量定义时必须初始化赋初始值。直接定义变量是给个初始值,后者使用时再修改赋值。

AinUser
AinUser   2016.03.05 10:19

int i = 0;
int sum = 0;
while(i<100)
for( sum =i; sum+=i; i++){
System.out.println(sum);
}

kedi_study
kedi_study   2016.03.05 10:28

Java规定定义局部变量时必须手动赋初始值 ,你的int sum的定义应该是在方法里定义的吧,这样的话它就是局部变量,就的在定义的时候赋初始值,比如int sum = 0;你在while里赋初始值已经晚了,

xionglangs
xionglangs   Rxr 2016.03.05 13:18

sum =i;你这个不叫初始化,你这个叫赋值,但在java中,八大数据类性在使用的时候有2种情况,
一种是类的
class A{
private int i;
}
这一种在使用的时候不需要初始化,一般是set方法赋值,get方法取值。
另一种是直接在方法里面
public void function(){
int i =0;
}
这个在使用的时候一定要初始化,要给它一个定值,如果你给它一个变量,这应该就直接变为了赋值,并不是初始化。

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!