JS:提示用户输入,直到他们输入参数中指定的有效值

时间:2017-10-16 12:23:26

标签: javascript loops for-loop if-statement do-while

我的脚本应该提示用户输入性别,如果性别是“M”或“F”,那么它将返回。如果有任何其他输入,则必须继续提示,直到输入任一值。

JButton btnPathBrowser = new JButton("Select Database");
        btnPathBrowser.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                final JFileChooser fc = new JFileChooser();
                fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
                int response = fc.showOpenDialog(Create.this);
                if (response == JFileChooser.APPROVE_OPTION); {
                    txtPath.setText(fc.getSelectedFile().toString());
                    //fileName = fc.getSelectedFile().toString();

                }


            }
        }); 

3 个答案:

答案 0 :(得分:0)

function getGender()
{
    var yourGender; //otherwise, 'while' doesn't know it
    do
    {
        yourGender = prompt('Enter your gener (M/F)');
    } 
    while(yourGender != 'M' && yourGender != 'F')
}

我不知道提示部分是否正确,但是部分应该像这样工作。

答案 1 :(得分:0)

do-while循环与while循环不同,看起来你的语法混乱。以下是来自MDN的使用示例:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/do...while

此外,使用逻辑运算符检查true或false时,必须根据每个条件检查变量。你的功能应该简单得多:

function getGender() {
  do {
    var yourGender = prompt('Enter your gender (M / F)').toLowerCase();
  } while (yourGender !== 'm' && yourGender !== 'f');

  return yourGender;
}

答案 2 :(得分:0)

function getGender(sensitive){
  let gender;
  let pat = sensitive ? /[MF]/ : /[MF]/i;
  do
  {
    gender = prompt("Enter your gender (M / F)", '');
  } while( !gender.match(pat) );
  return gender;
}

/* Case sensitive
getGender(sensitive=true);
//*/

//* Not case sensitive
getGender(sensitive=false);
//*/