Do While循环输出不停地连续产生

时间:2019-01-28 21:02:16

标签: java loops do-while

此作业分配用于使用“ do while”循环,而我正在尝试让该程序要求输入球员姓名,然后输入球衣号码。需要包括的主要部分是程序,用于在输入数字时输入名称,然后程序输出表明该名称不正确,然后再次询问以及是否输入字母来输入球衣号码,该程序将其识别为错误并再次询问。我遇到的问题是,当我运行代码并输入球衣号码的字母时,输出会连续运行而不会暂停新的用户输入。

程序输出如下所示-

运行: 请输入玩家名称: 45 错误:您没有输入名称。 请再试一遍。输入播放器名称: 史密斯 您输入了有效的姓名。

请输入球衣号码: F 错误:未输入整数。 请重试:

请输入球衣号码: 错误:未输入整数。 请重试:

请输入球衣号码: 错误:未输入整数。 请重试:

请输入球衣号码: 错误:未输入整数。 请重试:

(这种情况一直持续到我停止运行为止,从不暂停新输入)

我已经阅读了有关布尔值和循环的教科书,但是我已经遇到了麻烦,因此我不太确定从哪里开始进行故障排除。

Scanner scnr = new Scanner(System.in);
String nameTemp;
int jerseyNumTemp = 0;
boolean validJerseyNum = false;
String regex =".*[a-zA-Z]+.*";
Player player1 = new Player();

  System.out.println("Please enter player name: ");
  nameTemp = scnr.next();

if (Pattern.matches(regex, nameTemp)) {
   System.out.println("You entered a valid name.");
} 

else {
   System.out.println("Error: you did not enter a name.");
   System.out.println("Please try again. Enter player name: ");
   nameTemp = scnr.next();

   if (Pattern.matches(regex, nameTemp)) {
      System.out.println("You entered a valid name.");
   } 
   else {
      System.out.println("Error: you did not enter a name. " 
      + "You are out of attempts.");
   }
}

   do {
   System.out.println("\nPlease enter jersey number: ");

    if (scnr.hasNextInt()){
        jerseyNumTemp = scnr.nextInt();

        if (jerseyNumTemp >= 0){
            validJerseyNum = true;
        } 
        else {
            System.out.println("Error: entered negative number.");
            System.out.println("Please try again:");
        }
    } else{
        System.out.println("Error: not entered an integer.");
        System.out.println("Please try again:");
    }
} while(!validJerseyNum);

我正在寻找可以识别字母不是数字的程序,然后要求再次输入,直到输入正确的数字为止。

0 个答案:

没有答案