2016-04-14 5 views
0

Ich mache ein Notendurchschnittskript für meine Klasse und ich kann mir nicht vorstellen, wie ich meine Gegenprobe wiederholen soll, bis ich einen gültigen Wert habe (Code ist unten aufgeführt). Wenn es ausgeführt wird, kann ich die Korrektur vornehmen, wenn die ursprüngliche Eingabe ungültig ist, aber nur einmal. Wie kann ich eine Schleife machen, bis ich eine richtige Antwort bekomme? Danke im Voraus!Erstellen einer Überprüfung if-Anweisung

if (grade1 >= 0 && grade1 <= 100) 
    System.out.println("First grade valid.\n"); 
    else 
    { 
     System.out.println("Grade invalid. Re-enter first grade:"); 
     grade1 = kb.nextDouble(); 
    } 

Antwort

1

betrachten

grade = -1; 
System.out.println("Enter a grade:\n"); 
grade1 = kb.nextDouble(); 
if (grade1 >= 0 && grade1 <= 100) 
{ 
    System.out.println("First grade valid.\n"); 
} 
else 
{ 
    while (grade1 < 0 || grade1 > 100) 
    { 
     System.out.println("Grade invalid. Re-enter first grade:"); 
     grade1 = kb.nextDouble(); 
    } 
} 
+0

versuchte einfach, dass zu bearbeiten und es negiert die Möglichkeit, erneut eingeben. – Dayeo78

+0

Sie sollen den Wiedereintrittscode innerhalb der Schleife haben. Bitte poste die Schleife, die zeigt, wie du sie mit FredKs Vorschlag umstrukturiert hast. Wenn Sie einfach "es funktioniert nicht" posten, können Sie nicht genügend Informationen bereitstellen, damit jemand Ihnen helfen kann. –

+0

Perfekt, das ist was ich gesucht habe! Danke für die Hilfe! – Dayeo78

0

Try this:

while ((grade = Integer.parseInt(JOptionPane.showInputDialog("Enter a grade"))) < 0 || grade > 100) { 
    System.out.println("Invalid grade of: " + grade); 
} 

Es Buchstaben obwohl gut behandeln tut, wenn der Eingabe von "a" itll bei Ihnen

0

Chara klagen und schreien, Als ursprünglich ausgeführte Methode habe ich es eingerichtet, so dass der Benutzer seine Eingaben eingibt und die Gültigkeit nach deren Entgegennahme überprüft (siehe erster Auszug unten). Es wäre am besten, den Platz zu sparen, wenn ich die erste Eingabe nur aktiv überprüfen könnte (siehe zweiten Auszug unten). Lew Bloch, ich verstehe, worauf Sie hinauswollen, und das war ein leichtes Versehen meinerseits. Ich werde von nun an meine Antworten besser machen.

// Cross Check

if (grade1 >= 0 && grade1 <= 100) 
    System.out.println("First grade valid.\n"); 
    else 
    { 
     System.out.println("Grade invalid. Re-enter first grade:"); 
     grade1 = kb.nextDouble(); 
    } 

// Grade Eintrag

grade1 = kb.nextDouble(); 
    while (grade1 < 0 || grade1 > 100) 
    { 
    System.out.println("Entered grade is invalid. Re-enter grade:"); 
    grade1 = kb.nextDouble(); 
    } 
0
try (Scanner scanner = new Scanner(System.in)) { 
    System.out.println("Enter a grade:\n"); 
    double grade1 = scanner.nextDouble(); 
    if (grade1 >= 0 && grade1 <= 100) 
    { 
     System.out.println("First grade valid.\n"); 
    } 
    else 
    { 
     while (grade1 < 0 || grade1 > 100) 
     { 
      System.out.println("Grade invalid. Re-enter first grade:"); 
      grade1 = scanner.nextDouble(); 
     } 
    } 
}