2016-10-10 1 views
-2

Im stecken in dieser Aktivität, ich muss testen, ob eine Eingabe von der Tastatur ist gültig, zwischen 0 und 100. Das Problem ist, dass, wenn jemand eine negative Zahl eingibt, wird beide gedruckt "gültig" und "nicht gültig" Ich möchte nur nicht gültig drucken, kann mir jemand helfen?Eingabe Validierung zwischen 0 und 100

Scanner scan = new Scanner(System.in); 

     System.out.println("Enter a test score: "); 

     double t = scan.nextDouble(); 


     if(t <= 100) 
     { 
     System.out.println("Valid"); 
     } 
     if(t > 0) 
     { 
     System.out.println("Not Valid"); 
     } 

    } 
} 
+0

tun sie nicht vergleichen verdoppelt, wie die –

+1

Informieren Sie sich über die grundlegenden Java-Konstrukten. Zum Beispiel, wenn-sonst. Außerdem würde Ihr Code beide sogar mit positiven Zahlen wie 42 ... –

+1

drucken und die if-else-Logik ist falsch ... wenn ich 50 als Eingabe gebe, druckt das "gültig" und "nicht gültig" ...also ist es gültig oder nicht? –

Antwort

0

versuchen Sie dies:

if(t <= 100 && t > 0) 
{ 
    System.out.println("Valid"); 
} 
else 
{ 
    System.out.println("Not Valid"); 
} 
0

Sie haben zwei separate Bedingungen. Wenn Sie -1 eingeben, wird t <= 100 als wahr ausgewertet, deshalb erhalten Sie Valid zum Drucken.

Sie sollten AND && verwenden, um beide Bedingungen gleichzeitig zu vergleichen.

Es sollte wie folgt:

if(t>0 && t<=100) { 
    System.out.println("Valid"); 
} else { 
    System.out.println("Not Valid"); 
} 
1

Solche Probleme leicht durch gelöst werden kann ... Lesen nur sorgfältig, was Sie in Ihr eigenes Programm geschrieben!

Bedeutung: Sie, als ein Mensch "run" das Programm. Und Sie finden:

Zuerst überprüfen Sie, ob die Nummer kleiner als 100 ist; um dann "Gültig" zu drucken.

Danach überprüfen Sie, ob die Nummer größer als 0 ist; um dann "Nicht gültig" zu drucken.

Sind Sie wirklich so überrascht, dass eine Nummer in dieser Bereich (0, 100) gleichzeitig gültig und nicht gültig ist ?!

So lautet die Antwort:

  1. Sie müssen der Bereich der gültigen und ungültigen Zahlen definieren.
  2. Dann nutzen Sie, wenn + sonst, dass Informationen an den Benutzer

Mit anderen Worten drucken: bevor Sie selbst Programmieren beginnen, müssen Sie eindeutig auf den „Umfang“ des Problems zu verstehen. Erwarten Sie nicht, dass "nur Quellcode schreiben" die Regeln bestimmt, damit zu arbeiten. Sie müssen die Regeln vor Codierung machen!

Und dann, Sie vielleicht am Ende mit:

if (t >= 0 && t <= 100) { 
    System.out.println("Valid"); 
} else { 
    System.out.println("Not valid"); 
} 

Oder vielleicht etwas ganz anderes. Es hängt davon ab, was Sie denken die Regeln für die Gültigkeit sind wirklich!

0

Sie werden für Werte testen, um wollen zwischen 0 und 100 gültig ist, dann ist alles andere nicht gültig:

if (t >= 0 && t <= 100) { 
    System.out.println("Valid"); 
} else { 
    System.out.println("Not valid"); 
}