我如何从同一个类中的另一个方法返回到主方法(中断不起作用)

所以我已经看到了很多关于这个的其他帖子,但它们没有应用,因为 a) 我试图在跳过 main 内部的 while 循环时返回到 main 方法。我正在制作一个文本冒险游戏,它通过从最后的步骤中调用下一步来分步工作(单独的方法)。例如,第一步是EastStoryline1(),第二步是EastStoryline2(),在代码的末尾EastStoryline1(),它说"EastStoryline2()"。


所以实际的 main 非常小,因为它只是一个循环到下一个的方法。main 中还有 2 个 while 循环。第一个是在我建立扫描仪和布尔 playagain 之后,它基本上围绕着主要的其余部分开始游戏,而 playagain = true。第二个循环紧跟在第一个循环之后,基本上是说当 def(玩家健康)> 0 时,播放游戏的事件。在第二个循环之后,但仍然在第一个循环中,代码调用方法Die(),然后询问玩家是否要玩游戏。


所以基本上,Die()为了打破任何现有的循环链并将其带到下一个代码中,我在里面放了什么代码Die()。问题是我Die()在其他方法中也使用过,每次调用它时我都希望它返回到Die()main之后的代码。这是主要的代码(抱歉格式错误):


public static void main(String[] args) 

{

    Scanner keyboard = new Scanner(System.in);

    boolean playagain = true;

    while(playagain == true)

    {

    while(def > 0)

    {

      TitleScreen("TXT ADVENTURE!");

      System.out.println("Pick a character: Rogue, Paladin, or Priest 

(capitals DO matter!)");

      String character = keyboard.next();

      CharacterChoice(character);

      System.out.println("You wake up on a dusty road, with no memory of who 

you are or how you got here. You can only remember your name, and how to 

fight. To the east lies a small dock with a boat. To the west, there seems 

to be a sand-scarred mountain range. Do you go east, or west?");

      String ew = keyboard.next();

      EastWest(ew);

  }

  Die();

  System.out.println("Do you want to play again?");

  String playornah = keyboard.next();

  if(playornah.equals("yes") || playornah.equals("Yes"))

  {

    playagain = true;

  }

  else

  {

    playagain = false;

  }

  }

}

这是我使用的 Die 代码system.exit(0),但现在我希望它在 Die 被调用后返回到主程序,而不是仅仅结束程序):


public static void Die()

  {

    System.out.println("GAME OVER");

    System.exit(0); //I tried using break but it wouldn't compile

  }

那么Die(),为了(无论它在哪里调用)在Die()被调用的位置之后返回到 main 中,我应该编写什么代码。


哔哔one
浏览 255回答 2
2回答

慕娘9325324

public static void Die(){    System.out.println("GAME OVER");    System.exit(0); //I tried using break but it wouldn't compile}System.exit(0);结束程序。如果您只想结束该方法:让方法在没有更多语句时自然结束。(只需删除System.exit(0);)替换System.exit(0);为return;声明从文档:一个方法返回到调用它的代码时完成方法中的所有语句,到达 return 语句,或抛出异常(稍后介绍),以先发生者为准。

慕的地6264312

您不能从外部方法返回,一旦运行代码,您如何使用 try-finally 返回它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java