[英]How can I add an error statement in a loop if the user entered letters instead of numbers
如果用户输入字母而不是数字但程序应该继续,我如何在循环中添加错误语句
package sample;
import java.util.Scanner;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Random rand = new Random();
int playerGuess;
int randomNum = rand.nextInt(50) + 1;
int numberOfAttempts = 0;
while (true) {
System.out.println("Guess a number from 1 to 50: ");
playerGuess = scan.nextInt();
numberOfAttempts++;
if (playerGuess == randomNum) {
System.out.println("Congratulations! The number was: " + randomNum);
System.out.println("You got it in " + numberOfAttempts + " attempts.");
break;
}
else if (randomNum > playerGuess) {
System.out.println("Your guess is too low. Try again.");
}
else {
System.out.println("Your guess is too high. Try again.");
}
}
}
}
我的程序运行良好,但我忘记了如何在循环中添加错误语句。 当用户输入字母而不是数字时,有人可以帮助我在哪里以及如何添加错误声明吗? 先感谢您: :)))
您可以使用 try 和 catch 块检查错误。 您所要做的就是将容易出错的代码包装在 try 块中并检查特定异常并处理它。 不要只是将 catch 留空,这是一种不好的做法。 您可以这样做,但我建议使用 if 语句来检查您的输入是否包含数字
Scanner scan = new Scanner(System.in);
Random rand = new Random();
int playerGuess=0;
int randomNum = rand.nextInt(50) + 1;
int numberOfAttempts = 0;
while (true) {
System.out.println("Guess a number from 1 to 50: ");
try {
playerGuess = scan.nextInt();
numberOfAttempts++;
} catch (Exception ex) {
System.out.println("Please enter only number!");
scan=new Scanner(System.in);
}
if (playerGuess == randomNum) {
System.out.println("Congratulations! The number was: " + randomNum);
System.out.println("You got it in " + numberOfAttempts + " attempts.");
break;
} else if (randomNum > playerGuess) {
System.out.println("Your guess is too low. Try again.");
} else {
System.out.println("Your guess is too high. Try again.");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.