代碼如下:
package com.helloworld;
public class HelloWorld {
public static void main(String[] args) {
int index; //定義了一個變量index
for (int i = 0 ; i < 10 ; i++) {
if (i == 5 ) {
index = i; //當i等于5的時候,賦值給index
}
System.out.println("index是" + index);
//系統顯示這里錯誤,但是我有點不明白,
//不是明明已經給index復制了么,為什么錯誤
}
}
}
只有把一開始的變量聲明,int index 改成index index = 0 錯誤才消失。但是這個我有點不明白,我明明在里面賦值了,為什么是錯的?
2 回答

HUWWW
TA貢獻1874條經驗 獲得超12個贊
(1)在java中,類的成員變量不用初始化即可直接使用,JVM會自動初始化,原始變量如int char short long byte初始化為0,float double初始化為0.0,boolean初始化為false,對象初始化為null。
(2)在方法內的變量是局部變量,JVM不會給其分配默認值,局部變量必須要我們為其賦初始值,否則將得到編譯錯誤的提示。
class A{
int i; //成員變量,JVM自動初始化為0
public static void main(String[] args) {
int j = 0; //局部變量。 必須自己賦初始值,否則會報錯。
}
}
添加回答
舉報
0/150
提交
取消