2016-05-25 11 views
-1

Im folgenden Code wird der Benutzer aufgefordert, eine numerische Note einzugeben oder "s" || zu drücken "S", um diese Anforderung zu überspringen. Die Eingabe hat die Form einer Zeichenfolge. Falls die Eingabe nicht "s" || "S" ist, wird die Eingabe als doppelt geparst. Der Code funktioniert perfekt. Jetzt möchte ich die Validierung der Eingabedaten durchführen und die Eingabe entweder auf "s" oder "S" oder eine beliebige Zahl von 0-100 beschränken. Gibt es eine Möglichkeit, dies zu tun, ohne jeden Ausdruck in Form einer Zeichenkette zu erstellen? z.B. (Line == "0" || Zeile == "1" etc ... bis 100Eingabeüberprüfung für den analysierten Code

// Prompting the user for Score (Numerical Grade) 
System.out.println("Kindly input Numerical Score: (Enter s to Skip)"); 

// reading the input into the line variable of string datatype 
String line = input.nextLine(); 

// checking if line =="s" or =="S" to skip, otherwise 
// the value is parsed into a double 

if("s".equals(line) || "S".equals(line)) 
{ 
}else try 
{ 
     score = Double.parseDouble(line); 
     System.out.println(score); 
} catch(NumberFormatException nfe) 
{ 

} 
+0

Sie scheinen Fragen zu stellen, die in winzigen Schritten gegenüber dem vorherigen liegen.Warum haben Sie eigentlich nicht selbst einen Versuch, anstatt nach einem Löffel zu fragen? –

+0

Der beste Weg, es zu versuchen, ist zu versuchen und zu schreiben etwas mehr Code. –

Antwort

2

Du Parsen bereits den Wert eines Double zu bekommen. Nur den Wert überprüfen der Variablen.

if (score >= 0 && score <= 100) { 
    doXYZ(); 
} else { 
    notProcessing(); 
} 
Verwandte Themen