這個問題在這里已經有了答案: 變數可能未初始化錯誤 (12 個回答) 4 天前關閉。
public class Main
{
public static void main(String[] args) {
String y;
for(int i= 0;i<9;i ){
y = Integer.toString(i);
}
System.out.println(y);
}
}
我得到的錯誤資訊
Main.java:16: error: variable y might not have been initialized
第 16 行是列印陳述句。
而這個程式的目的是列印出“8”。
我知道變數 'y' 必須初始化為空字串 ("") 才能滿足編譯器的要求。但我的問題是為什么會發生這種情況。由于在 for 回圈中為 'y' 賦值,并且因為在 for 回圈開始時 'i' 將始終為 0,所以字串 'y' 不會總是被初始化嗎?
uj5u.com熱心網友回復:
因為編譯器無法確定回圈體是否被執行并設定y. 它沒有感覺。
String y = String.valueOf(IntStream.range(0, 9).max().orElse(-1));
System.out.println(y);
這相當于
String y = "-1";
for(int i = 0; i < 9; i ) {
y = Integer.toString(i);
}
System.out.println(y);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/348122.html
