繁体   English   中英

如果用户输入字母而不是数字,如何在循环中添加错误语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM