變量的初始化賦值,在什么位置賦值算正確的初始化?為什么不能在for循環(huán)內(nèi)部賦值?
main方法里的變量必須先賦值,才能輸出
在for循環(huán) {} 里面的不算賦值嗎?比如下面的這個(gè)
public class HelloWorld{
? ? public static void main(String[] args) {
? ? ? ? int i=1;
? ? ? ? int j=1;
? ? ? ? int sum;
? ? ? ? for(;i<10;i++,j++){
? ? ? ? ? ? sum=i+j;??
? ? ? ? }
? ? ? ? //這樣會報(bào)錯(cuò)說sum沒有初始化,sum=i+j為什么不算初始化?
? ? ? ? //為什么只能int sum=0;for(;i<10;i++,j++){sum=i+j;}
? ? ? ? //或者int sum;fot(sum=0;i<10;i++,j++){sum=i+j;}
? ? ? ? System.out.println(sum);
? ? }
}
2019-04-17
sum必須要先初始化
2019-03-27
System.out.println(sum); 有這個(gè)的原因。
因?yàn)槌绦蚨际且染幾g的,編譯的時(shí)候不會進(jìn)行運(yùn)算,也就是sum=i+j這個(gè)賦值操作不會進(jìn)行,再編譯到System.out.println(sum);時(shí)系統(tǒng)就會報(bào)sum沒有賦值。