gpt4 book ai didi

Java 方法示例说明

转载 作者:行者123 更新时间:2023-11-30 06:43:00 24 4
gpt4 key购买 nike

如果这个问题过于简单,我深表歉意,但我仍处于学习 Java 的早期阶段。我有一个调用类中其他方法的示例程序,但我并没有完全遵循其中的一些元素——希望有人能澄清一下。这是一个简单的随机数猜谜游戏,运行良好,但我想更好地理解一些组件。具体来说:

  • 有一个 boolean 变量 (validInput) 已声明但从未出现在方法中的任何地方
  • 有 2 种方法(askForAnotherRound 和 getGuess)带有一个“while”循环,该循环仅将“true”作为变量(?)——即“while (true)”。

此代码直接来自书中的示例,同样有效。我只是想更好地理解上面的这两个元素。 (我认为 validInput 变量没有用,因为当我“注释掉”代码仍在执行的那一行时)。不过,我对“while (true)”元素很好奇。在 askForAnotherRound 中有一个选项可以将返回值设置为 false(结束程序)。 boolean 方法在首次执行/调用时是否默认为“true”?

再次...理解这对这里的大多数人来说可能是一个 super 简单的问题,但作为一个新手我只想尽可能地理解这个...

谢谢!!!

// Replicates the number guessing game using 4 separate methods.

import java.util.Scanner;

public class GuessingGameMethod2
{
static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
System.out.println("Let's play a guessing game!");
do
{
playARound();
}while (askForAnotherRound());
System.out.println("Thanks for playing!");
}

public static void playARound()
{
boolean validInput;
int number, guess;
String answer;

//Pick a Random Number
number = getRandomNumber();

//Get a guess
System.out.println("\nI'm thinking of a number between 1 and 10.");
System.out.print("What do you think it is? ");
guess = getGuess();

//Check the guess
if (guess == number)
System.out.println("You're right!");
else
System.out.println("You're wrong! The number was " + number + ".");
}

public static int getRandomNumber()
{
return (int)(Math.random() * 10) + 1;
}

public static int getGuess()
{
while (true)
{
int guess = sc.nextInt();
if (guess < 1 || guess > 10)
{
System.out.print("I said, between 1 and 10. Try again");
}
else
return guess;
}
}

public static boolean askForAnotherRound()
{
while (true)
{
String answer;
System.out.print("\nPlay again? Y or N: ");
answer = sc.next();
if (answer.equalsIgnoreCase("Y"))
return true;
else if (answer.equalsIgnoreCase("N"))
return false;
}
}
}

最佳答案

我没看到 boolean validInput正在使用。但是,如果要在某个地方使用它,可能会检查您的猜测是否满足1 <= guess <= 10。 .

说到askForAnotherRoundgetGuess这是你应该知道的:

while(true)总是被执行。一种摆脱 while 的方法循环是如果你使用 break语句或者如果循环在一个函数中,你可以 return某物。方法askForAnotherRound()将始终返回 truefalse .取决于 askForAnotherRound() 的返回值你要么再玩一轮,要么不玩。请注意,当您有

    `do{
...
someActions()
...
}while(booleanValue)`

someActions()将在检查 booleanValue 的值之前至少执行一次如果结果是 false你会退出 do/while环形。 boolean 方法不默认任何值,您必须给它们一个值。

希望对您有所帮助!我现在也在学习 Java,祝你好运!

关于Java 方法示例说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52564532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com