2016-12-11 2 views
0

Ich habe versucht, dieses Problem für mehrere Stunden zu beheben, verstehe das Problem nicht.Java-Scanner While-Loop, der Bedingte Bedingungen nicht beachtet

-Code

import java.util.Scanner; 

public class Scan { 

public static void main(String args[]) { 

System.out.println("Enter Number"); 

Scanner test = new Scanner(System.in); 

int g = test.nextInt(); 

while(g != -1){ 

System.out.println("Enter Number"); 

test.nextInt(); 
} 

test.close(); 

return; 
} 
} 

Problem

(1) Wenn Sie eine Zahl! = -1 eingeben, funktioniert die while-Schleife, wie erwartet.

(2) Wenn Sie an der ersten Eingabeaufforderung -1 eingeben, ignoriert der Code die while-Schleife, schließt den Scanner und beendet die Hauptmethode.

(3) Wenn Sie jedoch eine Zahl! = Bis -1, und dann -1 eingeben, wird die while-Schleife fortgesetzt, solange Sie Ganzzahlen eingeben.

Warum wird die While-Schleife nicht wie in (1) beendet?

Antwort

0

Innerhalb while loop Wenn Sie eine Eingabe vom Benutzer nehmen, wo wird es gespeichert? Sollte nicht test.nextInt();g = test.nextInt(); sein?

Sie sind mit diesem Problem konfrontiert, denn wenn man eine Eingabe von dem Benutzer innerhalb while loop nehmen, Sie sind nicht in Ihren Variable g Speicherung und das ist der Grund, warum Ihre while loop nicht bricht, wenn Benutzer -1 eintritt.

Hier ist Ihr Code nach der Behebung dieses kleinen Fehlers.

import java.util.Scanner; 

public class Scan { 

public static void main(String args[]) { 

System.out.println("Enter Number"); 

Scanner test = new Scanner(System.in); 

int g = test.nextInt(); 

while(g != -1){ 

System.out.println("Enter Number"); 

g = test.nextInt(); //your input should be stored in g so that while loop exits if g becomes equal to -1 
} 

test.close(); 

return; 
} 
} 
Verwandte Themen