Hallo Community,
ich habe ein Problem mit dem Scanner und komme nicht auf die richtige Lösung. Wenn ich mein Programm starte, kann ich sofort eine Eingabe tätigen, obwohl das gar nicht gewünscht ist. Das führt dann im Folgeschritt zu einer Fehlmessung. Außerdem scheint er sich das "Enter" zu merken und im nächsten Schritt ungefragt wieder nutzen. Ich würde den Scanner deshalb gerne später initiieren und nach der Eingabe auch gleich schließen lassen.
Mit scan.close() hat es leider nicht funktioniert.
So sieht momentan der Code aus. Hoffentlich könnt ihr mir helfen. Der Scanner wird übrigens in der Klasse initiiert und deshalb hier nicht zu sehen. Egal wo ich ihn initialisiere, während des kompletten Programms kann ich eine Eingabe tätigen, die dann auch schon gemessen wird...
ich habe ein Problem mit dem Scanner und komme nicht auf die richtige Lösung. Wenn ich mein Programm starte, kann ich sofort eine Eingabe tätigen, obwohl das gar nicht gewünscht ist. Das führt dann im Folgeschritt zu einer Fehlmessung. Außerdem scheint er sich das "Enter" zu merken und im nächsten Schritt ungefragt wieder nutzen. Ich würde den Scanner deshalb gerne später initiieren und nach der Eingabe auch gleich schließen lassen.
Mit scan.close() hat es leider nicht funktioniert.
So sieht momentan der Code aus. Hoffentlich könnt ihr mir helfen. Der Scanner wird übrigens in der Klasse initiiert und deshalb hier nicht zu sehen. Egal wo ich ihn initialisiere, während des kompletten Programms kann ich eine Eingabe tätigen, die dann auch schon gemessen wird...
Code:
void reaktion()
{
System.out.println("BLITZER-ALARM******!!");
Date reaktionsZeit = new Date();
long reaktionAnfang = reaktionsZeit.getTime();
scan.hasNextLine();
Date reaktionsZeit2 = new Date();
long reaktionEnde = reaktionsZeit2.getTime();
if(reaktionEnde-reaktionAnfang < level)
{
System.out.println("Du hast fuer deine Reaktion " + (reaktionEnde-reaktionAnfang) + " ms benoetigt");
level = level - 100;
nextLevel();
}
else
System.out.println("Du hast leider " + ((reaktionEnde-reaktionAnfang)-level) + " ms zu lange benoetigt.\n");
System.out.println("Danke, dass du \"Blitzer-Alarm\" gespielt hast.");
level = 1000;
scan.close();
}