数字可能会变得很大,以至于JVM无法处理它。
该函数可以调用自身很多次,导致JVM崩溃(即Stack Overflow错误)。
醇>
后一种情况更合理;即使该方法实际上没有return任何东西,仍然会调用该方法。
在某些情况下,return方法名称完全可以。但是,如果你这样做,请确保你有终止条件!这是一个类似于你的例子(不会崩溃):
import java.io.*;
//class declaration here
public static void main(String[] args) {
System.out.println(guessTheNumber());
}
public String guessTheNumber() {
int guess;
System.out.print("Guess the number:_");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
guess = Integer.parseInt(br.readLine());
} catch (NumberFormatException e) {
System.err.println("You didn't guess a number.");
guessTheNumber();
} catch (IOException e) {
System.err.println("An unexpected error occured. Please try again.");
guessTheNumber();
}
if (guess == 4) {
return "YAY! You get a prize!";
} else {
System.err.println("WAAHH! You get to guess again!");
guessTheNumber();
}
}
警告:停止此代码(来自代码本身)的唯一方法是输入4。
在上述情况下,当用户输入实际数字且该数字为4时,就会出现终止条件。