1

如何修改下面的代码成为只能输入2次错误PIN的用户?2 次错误 PIN 后,程序将自动退出。

    String user = "Melissa";
    int pin = 123456;
    int pin2;

    // Prompt the user for input
    do
    {
        String pin2String = JOptionPane.showInputDialog("Enter PIN");
        pin2 = Integer.parseInt(pin2String);
    }while(pin2 != pin);

    // Display
    JOptionPane.showMessageDialog(null, "User: "+ user);
4

4 回答 4

4

您只需要添加一个计数器,以计算用户尝试输入 pin 的次数,然后验证while循环条件中的条件。

例如:

 String user = "Melissa";
 int pin = 123456;
 int pin2;
 int MAX_INCORRECT_PIN_THRESHOLD = 2;
 int attempts = 0;

 // Prompt the user for input
 do {
     String pin2String = JOptionPane.showInputDialog("Enter PIN");
     pin2 = Integer.parseInt(pin2String);
     attempts++;
 } while(pin2 != pin && attempts < MAX_INCORRECT_PIN_THRESHOLD);

 if (pin2 == pin) {
     // Display
     JOptionPane.showMessageDialog(null, "User: "+ user);
 }
于 2011-11-10T16:22:47.100 回答
1

尝试只循环两次的 for 循环。那可能会更容易。

VALID:
for(int i= 0; i < 2; i++){
  if(pin==pin2){
    //Valid login...
    break VALID;
  }else if(i == 1){
   System.exit(0);
  }
}
于 2011-11-10T16:24:45.320 回答
0
int counter = 0;
 do
    { if(counter++ >= 2){ break;}
        String pin2String = JOptionPane.showInputDialog("Enter PIN");
        pin2 = Integer.parseInt(pin2String);
    }while(pin2 != pin);
于 2011-11-10T16:24:26.747 回答
0

在其中放置一个简单的计数器,在两次迭代后终止循环,然后检查离开循环后 PIN 是否无效:

String user = "Melissa";
int pin = 123456;
int pin2;
int count = 0;

// Prompt the user for input
do
{
    String pin2String = JOptionPane.showInputDialog("Enter PIN");
    pin2 = Integer.parseInt(pin2String);
}while(pin2 != pin && count++ < 2);

if(pin2 != pin)
{
  // Kansas is going bye-bye - call exit logic
}

// Display
JOptionPane.showMessageDialog(null, "User: "+ user);
于 2011-11-10T16:29:51.703 回答