为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哔哔one 2021-11-11 18:19:52
所以我已经看到了很多关于这个的其他帖子,但它们没有应用,因为 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 中,我应该编写什么代码。
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

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 语句,或

  • 抛出异常(稍后介绍),

以先发生者为准。


查看完整回答
反对 回复 2021-11-11
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

您不能从外部方法返回,一旦运行代码,您如何使用 try-finally 返回它。


查看完整回答
反对 回复 2021-11-11
  • 2 回答
  • 0 关注
  • 254 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信