請原諒我提出一個非常基本的問題,我剛剛開始學習Java,而對我來說一些東西沒什麼意義。我正在研究一些簡單的練習題,然後我碰到這個問題:Java錯誤;無法解析變量名稱
給定一個字符串,我們會說前面是字符串的前3個字符。如果字符串長度小於3,那麼前面就是任何地方。返回前面3個副本的新字符串。
Here is the link對任何有興趣的人。這看起來不難,所以我寫了這個;
public String front3(String str){
if (str.length() < 3){
String front = str;
} else {
String front = str.substring(0, 3);
}
return front + front + front;
}
這不能運行。相反,它給出了一個例外,說名稱front
無法解決。什麼?爲什麼會發生這種情況,無論是String front
在if塊還是else塊中都被初始化,嚴格來說Pythonic編碼器都是沒有意義的。示例代碼展示瞭如何將行String front;
作爲第二行來初始化一個空字符串。
底下會發生什麼,會導致這不工作在Java?試着用Pythonista能理解的方式來解釋它! :)
另外,我認爲我會被低估爲遺忘,因爲我確定這是一個很多初學者遇到的常見問題,並且可能已經有了一個答案。
您需要了解變量範圍。 – Haris 2014-09-04 23:31:36