變量的初始化賦值,在什么位置賦值算正確的初始化?為什么不能在for循環內部賦值?
main方法里的變量必須先賦值,才能輸出
在for循環 {} 里面的不算賦值嗎?比如下面的這個
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;??
? ? ? ? }
? ? ? ? //這樣會報錯說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); 有這個的原因。
因為程序都是要先編譯的,編譯的時候不會進行運算,也就是sum=i+j這個賦值操作不會進行,再編譯到System.out.println(sum);時系統就會報sum沒有賦值。