java如何检查输入是否为整数,并在最后添加一个命令来重新启动while循环?
这是我的代码,首先我想在开始时添加一些东西来检查用户输入是否为整数。如果输入不是整数,程序必须提示输入另一个输入。 第二是在最后做出是/否选项,以决定是否重新运行“游戏”(程序本身,尤其是while循环)。 我真的很喜欢基础编程,所以任何提示都将不胜感激
import java.util.Random;
import java.util.Scanner;
public class Numberguessinggame2
public static void main(String[] args) {
//random number generator
Random rand = new Random();
int round = 1;
System.out.println("Let's play a number guessing game.");
System.out.println("Ill pick a number between 1 and 100,");
System.out.println("and you try to guess it in 7 or fewer tries.");
System.out.println(" ");
System.out.println("Round " + round);
System.out.println("-----");
//acquire input from user
Scanner scanner = new Scanner(System.in);
//generate a number between 1 and 99
int number = rand.nextInt(99) + 1;
int guess = -1;
int counter = 0;
//prompt user for first guess
System.out.print("What is your first guess? ");
//loop until user guesses the right number
while (guess != number) {
guess = scanner.nextInt();
counter++;
//loop until user gives 7 guesses
if (counter>=7){
System.out.println("You didn't get the number in 7 guesses.");
System.out.println("I win! My number was : " + number);
break; }
if (guess<number) {
//guess is too low
System.out.print("That's too low.Try again: ");
if (guess<number && counter == 6) {
//guess is too low and has reacher the Last chance
System.out.print("... Last chance!");
}
}if (guess>number) {
//guess is too high
System.out.print("That's too high.Try again: ");
if (guess>number && counter == 6) {
//guess is too high and has reached its Last chance
System.out.print("... Last chance!");
}
if (guess==number) {
//if the guess is correct
System.out.println("You got it in " + counter + " guesses.");
System.out.println("You win! My number was : " + number);
round++;
}
}
}
}
}
# 1 楼答案
您可以使用netx()代替nextInt(),next()将返回一个String对象,您可以使用Integer将该字符串解析为int。valueOf(stringObject),当此stringObject不是int值时,此方法可以返回NumberFormatException
例如:
编辑: 我更新了代码,忘记在try块中包含值