Надеюсь, у вас всех хороший день.
Мой учитель сбил с меня штаны.Я прочитал мою книгу и исследовал, но я все еще в замешательстве.Я только сейчас изучаю методы, поэтому мне предстоит долгий путь.Я создал игру, похожую на «Oregon Trail», в которой используется метод «игра окончена», чтобы узнать, хочет ли пользователь снова играть.
Основная проблема: мой учитель упомянул что-то неопределенное о том, что если игра зациклится достаточно много раз, мы получим стек переполнением.Это имеет смысл для меня, потому что игра продолжает вкладывать методы друг в друга так, как я это делаю, добавляя в стек каждый раз, когда вызывается метод «новая игра», потому что внешние методы все еще там ожидают завершения.
Я привел пример того, что я имею в виду.Предполагая, что были какие-то паузы для пользовательского ввода и тому подобное, как я должен быть уверен, что использование памяти не будет расти, когда я вызываю методы внутри других методов?Я думаю, что слово для этого - «рекурсивный», таким образом, мой заголовок.
Пожалуйста, если кто-то мог бы порекомендовать хорошую форму для решения этой проблемы, я был бы очень благодарен.
public class Testing
{
public static void main(String[] args) {
System.out.println("main method");
gameStart();
}
private static void gameStart()
{
System.out.println("some other method called");
gameOver();
}
private static void gameOver()
{
System.out.println("game over called"); //I would ask the user if they want to play again.
//keeping it concise to illustrate my point, instead of using an if statement
gameStart();//starting the cycle I'm concerned about. Assume the user indicated they would like to play again.
}
}