java - 如何使用 do-while 循环再次检查用户输入?

标签 java do-while

我想在我的程序中添加一个循环,以便当用户输入错误的名称时,它会返回到程序的开头并要求他们再次输入名称。我认为我需要一个 do-while 循环,但我不确定如何使用已包含的 if 语句和 boolean 值来实现它。我希望用户只有三个条目,如果他们错了三次,程序就会关闭。

import java.util.Scanner;

public class Username
{
  public static void main(String[] args)
  {
    {
      Scanner kb = new Scanner(System.in);
      // array containing usernames
      String[] name = {"barry", "matty", "olly", "joey"}; // elements in array


      System.out.println("Enter your name");
      String name1 = kb.nextLine();
      boolean b = true;
      for (int i = 0; i < name.length; i++)
      {
        if (name[i].equals(name1))
        {
          System.out.println("you are verified you may use the lift");
          b = false;
          break;// to stop loop checking names
        }
      }

      if (b)
      {
        System.out.println("Invalid entry 2 attempts remaining, try again");
      }
    }

最佳答案

您可以在 while 循环中使用条件。大致如下:

boolean b = false;
while(!b){
    System.out.println("Enter your name");
    String name1 = kb.nextLine();
    for (int i = 0; i < name.length; i++) {
        if (name[i].equals(name1)) {
            b = true;
            System.out.println("you are verified you may use the lift");
        }else{
            System.out.println("Invalid entry 2 attempts remaining, try again");
        }
    }
}

如果满足名称条件,则循环将退出;如果不满足,则循环。

关于java - 如何使用 do-while 循环再次检查用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22733632/

相关文章:

java - 在 n 个数字的数组/列表中查找 3 个最大的数字而不进行排序

java - 将文件包含在 java 存档中

java - Servlet 应用程序中没有加载任何属性文件

java - 在java中使用while循环来计算字符串中的实例数

java - 无法获取客户的费用 list

java - 将访问权限存储在数据库表中是常见的做法吗?

c++ - 我需要线程函数在不停止实际程序的情况下每 2 秒打印一次随机数

java - 掷骰子游戏不断循环

c# - 当前上下文中不存在该名称(变量)

c - 有什么建议或改进吗?