总的来说,我对Java很陌生,但我想获得一些关于我正在学习的CS类的代码的输入。这是一个用数字来玩Hi猜谜游戏的程序.用户可以选择退出游戏中途输入0,然后提示他们再次发挥,如果他们选择。如果他们猜对了,他们也会被提示再玩一次。
但是,代码工作得很好,我最初的方向是使用while循环作为主条件,而不是使用do语句,但是在用户输入0退出循环之后,我无法让游戏再次开始。我很想知道如何使用while循环作为主要的条件和do语句。
import java.util.Scanner;
import java.util.Random;
public class HiLo {
public static void main(String[] args)
{
int guess, answer, count = 0;
String restart;
Random generator = new Random();
Scanner scan = new Scanner(System.in);
System.out.print("What number do you guess (enter 0 to quit)? ");
guess = scan.nextInt();
answer = generator.nextInt(100) + 1; // randomly generates a number between 1-100
do // loops through game until user gets answer correct or quits
{
count++;
if (guess == 0) // if user enters 0 to quit game, this message is displayed
{
System.out.println("\nQuitting game");
System.out.println("\nWould you like to play again?");
restart = scan.next();
if (restart.equalsIgnoreCase("Y"))
{
System.out.print("Enter a number to start playing");
guess = scan.nextInt();
}
else
break;
}
if (guess == answer)
{
System.out.println("That's correct! You made " + count + " guesses.");
System.out.println("Would you like to play again?");
restart = scan.next();
if (restart.equalsIgnoreCase("Y"))
{
System.out.print("Enter a number to start playing");
guess = scan.nextInt();
}
else
break;
}
if (guess < answer)
{
System.out.print("Your guess is too low, try again.");
guess = scan.nextInt();
}
if (guess > answer)
{
System.out.print("Your guess is too high, try again.");
guess = scan.nextInt();
}
}
while (guess != 0);
System.out.print("Thanks for playing!");
}
}发布于 2016-07-09 14:53:40
压痕
您的主要功能需要缩进类中的一个级别。
函数
将main()中的一些代码移到函数中会使您的代码受益。main()函数通常应该是处理参数、初始化程序和捕获任何异常的地方。由于它是当前实现的,您需要另一个变量来获得一个while循环才能工作。如果猜测部分位于另一个函数中,while循环将更容易实现。
多圈
您应该有一个循环用于继续游戏,另一个循环用于猜测部分。
https://codereview.stackexchange.com/questions/134370
复制相似问题