请原谅我提出一个非常基本的问题,我刚刚开始学习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