试图弄清楚如何将总分恢复到主要打印出来。它正在显示但未存储在变量中
Posted
技术标签:
【中文标题】试图弄清楚如何将总分恢复到主要打印出来。它正在显示但未存储在变量中【英文标题】:Trying to figure out how to to bring the total score back up to main to print out. It is being displayed but not stored in the variable 【发布时间】:2018-10-01 07:20:56 【问题描述】:我正在尝试弄清楚如何将总分恢复到主要分数以打印出来。它正在显示但未存储在变量中
这是我的代码中最重要的方法。我试图弄清楚如何返回每个玩家的最终得分,即使这些方法是嵌套的。这应该就像游戏价格是正确的。三个玩家都在旋转***,试图尽可能接近 100。如果他们超过,他们就出局了。我没有包括我的主要方法,但我只是为每个人调用了他们的方法 player()。我已经采用了这种方法,我只需要弄清楚如何将值发送到 main。
public static int player()
Scanner inputScanner = new Scanner(System.in); //asks user if they are ready
String userInput = inputScanner.nextLine();
if (userInput.equals("yes"))
int total = 0;
total += spinWheel(); //method to spin wheel
if (total < 100)
System.out.println("Would you like to spin again?"); //if < 100 they have the chance to spin again
userInput = inputScanner.nextLine();
if (userInput.equals("yes")) /asks them if they want to spin
total += spinWheelTwice();
System.out.println("Final Score is: " + total); //adds to the earlier spin
// I want to store the final score in a variable that I can pass back up to main
【问题讨论】:
忽略随机字母,它不会让我添加更多详细信息 这意味着你需要添加细节 在if
块之前声明 total
,然后在 if 块之后声明 return total;
?
@ElliottFrisch 我尝试返回总计,但未定义??
@Berger 我也应该声明什么???
【参考方案1】:
在你的调用方法(main
我想你使用)中,只需声明一个从player()
返回的变量,即int total = player();
。
而在player()
中,需要将金额返回给调用方法。但首先,我会在player()
的最顶部声明total
。
您只需在块的末尾返回total
变量。
public static int player()
int total = 0;
Scanner inputScanner = new Scanner(System.in);
String userInput = inputScanner.nextLine();
if (userInput.equals("yes"))
total += spinWheel();
if (total < 100)
System.out.println("Would you like to spin again?");
userInput = inputScanner.nextLine();
if (userInput.equals("yes"))
total += spinWheelTwice();
System.out.println("Final Score is: " + total);
return total;
然后,您可以随意使用main
中的total
变量。
编辑:
根据下面的评论,如果您想建议用户在总分 if...else:
if (userInput.equals("yes"))
total += spinWheelTwice();
if (total < 100)
System.out.println("You are out of the game");
else
System.out.println("Final Score is: " + total);
如果用户没有第二次输入“yes”(也许他们第一次没有输入),您也可能需要它,但如果是这样,那么在第二个嵌套if
。
例子:
public static int player()
int total = 0;
Scanner inputScanner = new Scanner(System.in);
String userInput = inputScanner.nextLine();
if (userInput.equals("yes"))
total += spinWheel();
if (total < 100)
System.out.println("Would you like to spin again?");
userInput = inputScanner.nextLine();
if (userInput.equals("yes"))
total += spinWheelTwice();
if (total < 100)
System.out.println("You are out of the game");
else
System.out.println("Final Score is: " + total);
else
System.out.println("You are out of the game");
return total;
【讨论】:
没有理由在 if 语句中返回总计。在这种情况下,在方法结束时返回一次就足够了。 感谢您的帮助,这帮助很大!假设我想再添加一个 if 语句 if (total 【参考方案2】:您的问题是您在 if
范围内声明了 total
变量,这意味着变量 total
无法从该范围外访问。 total
要返回,需要在作用域外声明。
if (userInput.equals("yes"))
int total = 0;
// ...
return total; // this is unreachable
应该是
int total = 0;
if (userInput.equals("yes"))
// ...
return total;
回答你的问题,
public static int player()
System.out.println("Are you ready? (yes/no)");
Scanner inputScanner = new Scanner(System.in);
String userInput = inputScanner.nextLine();
int total = 0;
if (userInput.equals("yes"))
total = spinWheel();
System.out.println("You spun " + total);
if (total < 100)
System.out.println("Would you like to spin again?");
userInput = inputScanner.nextLine();
if (userInput.equals("yes"))
total += spinWheelTwice();
return total;
public static void main(String... args)
int total = YourClassName.player();
System.out.println("Final Score is: " + total);
这样的代码会唤起美好的回忆
【讨论】:
以上是关于试图弄清楚如何将总分恢复到主要打印出来。它正在显示但未存储在变量中的主要内容,如果未能解决你的问题,请参考以下文章