Java 数据验证-执行while循环

Java 数据验证-执行while循环,java,validation,loops,Java,Validation,Loops,我在验证字符串输入时遇到问题。我想使用户不能输入无效字符串(仅“CIS 280”、“ACC 201”、“CIS 120”、“CIS 185”)。但是,我不知道如何使用字符串来完成它 我的问题是 当我输入有效输入时,程序退出,不显示相应的时间 当我在第一个输入对话框中输入无效输入时,程序随后进入无限循环,即使我在以下位置输入有效字符串: invalid = JOptionPane.showInputDialog("Please enter a valid class."); 公共类数组测试{

我在验证字符串输入时遇到问题。我想使用户不能输入无效字符串(仅“CIS 280”、“ACC 201”、“CIS 120”、“CIS 185”)。但是,我不知道如何使用字符串来完成它

我的问题是

  • 当我输入有效输入时,程序退出,不显示相应的时间
  • 当我在第一个输入对话框中输入无效输入时,程序随后进入无限循环,即使我在以下位置输入有效字符串:

    invalid = JOptionPane.showInputDialog("Please enter a valid class.");
    
  • 公共类数组测试{
    公共静态void main(字符串[]args){
    int i=0;
    字符串类输入;
    布尔有效=假;
    字符串无效;
    字符串[][]类名={
    {“CIS 280”、“ACC 201”、“CIS 120”、“CIS 185”},
    {“星期二5:00”,“星期一和星期三12:20”,“星期一和星期三10:10”,“星期一和星期三12:00”}
    };
    classInput=JOptionPane.showInputDialog(“请输入类名:”);
    做{
    对于(i=0;i
    而不是

    get users input
    do{
       validate input
       if input is wrong ask again //btw here is your error, 
                                   //check where you are storing user's input
    }while(input is wrong)
    
    试一试


    另一件事是迭代到行的末尾,这将使
    i
    等于行的
    length
    。当您将找到正确的值时,您需要停止迭代,以便在您的应用程序中使用此
    i

    JOptionPane.showMessageDialog(null, "The time of that class is: " + classNames[1][i]);
    

    运行代码时会发生什么?它如何“不起作用”?
    do{
       get users input
       validate input
    }while(input is wrong)
    
    JOptionPane.showMessageDialog(null, "The time of that class is: " + classNames[1][i]);