我遇到了無限遞歸的問題。主要方法將運行,然後如果我選擇1,它將進入子菜單()。但是,當我在子菜單()中選擇一個錯誤的選項時,程序必須循環回主方法。如何解決java中的無限遞歸(堆棧溢出)?
但是,這種情況會導致堆棧溢出。
你有什麼想法傢伙有關這個問題?如何在不調用main()的情況下循環回主方法?
非常感謝。
public void main() {
// variables omitted
while (menu) {
switch (option) {
case 1:
subMenu();
break;
}
}
}
public void subMenu() {
switch (a) {
case 1:
case 2:
default:
System.out.println("Invalid Option");
main();
}
}
解決方法:不使用遞歸在這裏,因爲它會好得多簡單地使用while循環。 – 2012-04-19 15:35:41
你已經有一個在主菜單..所以爲什麼不只是返回? 而不是主要()返回? – 2012-04-19 15:38:22
考慮讓你的subMenu方法返回一個值,它可以像布爾型一樣簡單,讓調用代碼知道它是否成功,如果不是,那麼繼續使用while循環。 – 2012-04-19 15:44:07