1

以下のコードを変更して、間違った PIN を 2 回しか入力できないユーザーになるにはどうすればよいですか? PIN を 2 回間違えると、プログラムは自動的に終了します。

    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

2 回だけループする 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

そこに単純なカウンターをドロップして、2 回の反復後にループを終了し、ループを離れた後に 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 に答える