stop-Schleifen mit hasNext() Zustand
(Scanner Input=new Scanner(System.in))
Ich habe eine while
Schleife in meinem Programm Input.hasNext()
Zustand.
Ich möchte eine Zeile Lesen mit dem scanner ohne Input.nextLine();
weil ich will die strings und zahlen in die Zeile mit .next()
& .nextInt()
,wie kann ich brechen die while
Schleife nach dem Lesen einer Zeile, oder wie kann ich break die while-Schleife mit Eingabe von newline-Zeichen?
while (Input.hasNext()) {
if (Input.hasNextFloat()) {
Grade=Input.nextFloat();
P.setGrades(Grade);
j=0;k=1;
continue;
}
if (k==1) {
P.getGPA();
P=new Person();
k=0;
}
if (j==1) {
P.setLastName(Input.next());
continue;
}
P.setFirstName(Input.next());
i++;
j=1;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
wenn Sie möchten, dass nur 1 Zeile Lesen-in-1-Linie, und dann analysieren die Linie
Wie über dieses?
Ich bin nicht wirklich verwendet werden, um die Scanner-Klasse, aber ich nehme next() gibt eine leere Zeichenfolge zurück, wenn eine neue Zeile eingegeben.
Test für die Bedingung(en), die Sie wollen und nutzen Sie
break
zum Ende der Schleife.EDIT:
Basierend auf Ihren Kommentar, ich würde sagen, dass Sie nicht verwenden können Scanner in the loop test. Es ist einfach überspringt Zeilenumbrüche als Leerzeichen und wartet auf etwas anderes. Stattdessen wrap System.in einem BufferedReader und verwenden
readLine
um die nächste Benutzer-Linie. Wenn die Zeile leer ist (Länge null), dann können Sie brechen aus der Schleife ein; andernfalls können Sie wickeln Sie die Linie in einem Scanner Scanner verwenden die Analyse-Methoden für diese Zeile.wenn Sie möchten, um zu beenden, während, setzen return; oder wenn Sie wollen, gehen Sie auf die nächste iteration des Zyklus
setzen Sie Fort;