2011-11-10 12 views
1

以下のコードを修正してユーザーになる方法は、間違ったPINを2回入力することができますか? PINが2回間違った後、プログラムは自動的に終了します。do-whileループの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); 
+1

ええと。カウンターを 'do {'ループの先頭に追加するのはどうでしょうか? 'if(++ counter> 2){get angry ...}' – Gray

+1

または単にforループを使用してください。 MAX_INCORRECT_PIN_THRESHOLD = 2の場合は –

答えて

4

あなたは自分のwhileループの状態で状態を確認した後、ユーザーがPINを入力しようとした回数をカウントするために、カウンタを追加する必要があります。例えば

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); 
} 
+0

、試行= 0;間違った時間の合計は3回になる可能性があります。 –

+0

申し訳ありませんが、試行

+0

申し訳ありません、私はプログラミングの初心者ですので、助けてくれてありがとう〜ありがとう〜 –

0
int counter = 0; 
do 
    { if(counter++ >= 2){ break;} 
     String pin2String = JOptionPane.showInputDialog("Enter PIN"); 
     pin2 = Integer.parseInt(pin2String); 
    }while(pin2 != pin); 
0

それは二回しかループどこforループを試してみてください。おそらくもっと簡単だろう。

VALID: 
for(int i= 0; i < 2; i++){ 
    if(pin==pin2){ 
    //Valid login... 
    break VALID; 
    }else if(i == 1){ 
    System.exit(0); 
    } 
} 
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); 
関連する問題