import java.util.Scanner;
import java.util.Random;
/*
* 1) the user can attempt many times and you need to display the number of successful attempt
* 2) the range of random number 1..49
* 3) output >> You successfully guess the number in 16 attempts
* 4) output >> Do you want to play again?
* */
public class GuessingGame {
public static void main(String[] args) {
Scanner uInput = new Scanner(System.in);
Random randNum = new Random();
int guessNumber, number, count=0;
String in;
char again;
System.out.println("Welcome to Guessing Game");
do {
number = randNum.nextInt(50); // random number in the range of 1..50
for(int i=0; i<5; i++)
{
System.out.println("Enter a number to guess: ");
guessNumber = uInput.nextInt(); // get guess number from user
if(guessNumber > number)
{
System.out.println("Too big");
}else if(guessNumber < number)
{
System.out.println("Too small");
}else
{
System.out.println("Success");
count+=1;
return;
}
}
System.out.println("You successfully guess the number in "+count);
System.out.println("Do you want to play again? ");
in = uInput.nextLine();
again = in.charAt(0); //again will hold the first character from in var
}while(again =='Y'|| again =='y');
System.out.println("Guessing game terminate, thank you");
}
}
2条答案
按热度按时间vm0i2vca1#
deyfvvtc2#
您所要做的就是用while循环替换do while循环。但关键是,您必须将初始值“y”设置为您的字符以启动while循环。循环的条件将是相同的。代码如下:char again='y';
我必须注意到你的
count
变量,包含用户成功猜到的游戏数,而不是单个游戏中的尝试次数。如果你想处理这个问题,创建attempts
while循环中的变量,并在用户尝试时增加它。我也换了线in = uInput.nextLine();
至in = uInput.next();
因为我相信你的扫描仪输入会被跳过。