java nextInt() try catch wiederholen Ausgang mehr als einmal

Ich Schreibe ein Programm, das akzeptiert zwei int-Werte in das Programm nextInt(); und haben es eingepackt in ein try catch block zu stoppen schlecht Eingänge wie Doppel-oder-chars.

Wenn mehrere falsche Eingaben eingegeben werden die loop-Wiederholungen, die gleiche Anzahl von Zeiten. Ich nehme an, dies ist, weil meine scan.next() hat eine Schleife um oft genug zu fangen die bösen Eingänge w/o-Fehler. Gibt es eine Möglichkeit zu wissen, diese Zahl auf dem ersten Durchlauf durch eine Schleife zu erstellen als Nächstes ausgeführt, dass viele Male?

In der Ausgabe der
if(cont == 'N') System.out.print("\nPlease re-enter\n\t:"); - Ausgabe und spiegeln die Höhe der Zeit, die eine nicht übereinstimmende Eingang geschrieben wurde. Das ist, wenn ich input 3 3.3 es wird wiederholt, ein weiteres mal, wenn der Eingang s 3.3 2.5 es wird wiederholen Sie drei weitere Male.

Ich versucht, indem Sie eine Schleife um scan.next() auf default zu zehn mal, wurde aber über Bord und ich hatte zur Eingabe eines zusätzlichen 8-Zeichen, bevor es zu Lesen begann wieder. Vielleicht ist eine while-Schleife, aber was würden seine Bedingung sein, versuchte ich while(scan.next() != null){} aber, dass die Bedingung nie aufgehört.

//input error checking
char cont = 'Y';
do{
  if(cont == 'N')
    System.out.print("\nPlease re-enter\n\t:");
  cont = 'Y';
  /* to stop the accidential typing of things other
   * than integers from being accepted
   */
  try{
    n1 = scan.nextInt();
    n2 = scan.nextInt();
  }catch(Exception e){
    cont = 'N'; //bad input repeat loop
    scan.next();//stops infinite loop by requesting Scanner try again
  }
} while(cont == 'N');//do loop while told N for continue
  • können Sie uns ein Beispiel geben von falschen Eingaben, die Sie verwendet?
Schreibe einen Kommentar