Als eine Übung für meinen Java-Kurs in Uni heute Morgen, musste ich ein kleines Programm schreiben, um den Benutzer zu bitten, einige Details einzugeben, und sie dann zurück zu drucken. Ich habe es inzwischen fertig geschrieben, aber ich hatte ein seltsames Problem auf dem Weg.Warum wird Zeile 17 dieses Java-Programms nicht ausgeführt?
den Code Siehe unten:
import java.util.Scanner;
public class Scanner_Exercise
{
public static void main (String[] args)
{
Scanner keyboardIn = new Scanner(System.in);
int accountId;
String accountName;
float accountBalance;
System.out.println("Account ID: "); //Line 13
accountId = keyboardIn.nextInt(); //Line 14
System.out.println("Account name: "); //Line 16
accountName = keyboardIn.nextLine(); //Line 17
System.out.println("Account balance: ");
accountBalance = keyboardIn.nextFloat();
}
}
Wenn dieses Programm läuft, Zeile 17 (Kommentare beziehen) übersprungen wird; Account name:
wird gedruckt, aber der Benutzer hat keine Möglichkeit, die Informationen einzugeben, als ob diese Codezeile auskommentiert wäre. Es werden keine Fehler ausgelöst. Die Ausgabe sieht wie folgt aus:
Konto-ID:
Kontoname:
Kontostand:
Allerdings, wenn ich wechseln Linien 13 und 14 mit 16 und 17, wie als folgt, das Programm läuft gut, und keine Zeilen werden übersprungen.
System.out.println("Account name: "); //Line 16
accountName = keyboardIn.nextLine(); //Line 17
System.out.println("Account ID: "); //Line 13
accountId = keyboardIn.nextInt(); //Line 14
Warum wird im ersten Fall die Zeile 17 übersprungen, aber nicht die zweite?
Wenn es irgendwie relevant ist, verwende ich JDK 6 Update 18 und TextPad 5.3.1.
Danke, das macht es klar. Ich hätte in erster Linie auf die Dokumentation verweisen sollen. – Auguste
@Auguste du lebst und du lernst! +1 für den Versuch, deine Hausaufgaben zu machen und eine vernünftige Frage zu stellen! – Kiril