Hi,
ich nutze in div. Projekten den Scanner aus java.util.Scanner.
Mir ist jetzt aber im Laufe der Zeit ein Problem aufgefallen, was sich öfter wiederholt und würde gerne wissen, was ich falsch machen. Ich habe hier eine verkürztes Beispielprogramm getippt, damit ich den Threat hier nicht gleich seiten weise füllen muss.
Hier zum ersten das Problem:
Anstatt, dass ich nach und nach nach der Eingabe gefragt werde, wird die Eingabe der Variable "name" einfach übersprungen. In der Konsole kommt dann das raus:
++++++++++++++++++++++++
[1]New [2]Delete [3]List [0]Exit
1 <-eingegebene Zahl
Enter a name:
Enter a device:
+++++++++++++++++++++++
Bei anderen programmen hatte ich auch schon den Fall, dass bei der ersten Eingabe alles eingeben kann, aber wenn ich dann den Robot (oder andere Objekte) verwerfe und neue Eingaben machen will, dass DANN erst die erste eingabe übersprungen wird.
Weiß jemand Rat?
ich nutze in div. Projekten den Scanner aus java.util.Scanner.
Mir ist jetzt aber im Laufe der Zeit ein Problem aufgefallen, was sich öfter wiederholt und würde gerne wissen, was ich falsch machen. Ich habe hier eine verkürztes Beispielprogramm getippt, damit ich den Threat hier nicht gleich seiten weise füllen muss.
Hier zum ersten das Problem:
Anstatt, dass ich nach und nach nach der Eingabe gefragt werde, wird die Eingabe der Variable "name" einfach übersprungen. In der Konsole kommt dann das raus:
++++++++++++++++++++++++
[1]New [2]Delete [3]List [0]Exit
1 <-eingegebene Zahl
Enter a name:
Enter a device:
+++++++++++++++++++++++
Bei anderen programmen hatte ich auch schon den Fall, dass bei der ersten Eingabe alles eingeben kann, aber wenn ich dann den Robot (oder andere Objekte) verwerfe und neue Eingaben machen will, dass DANN erst die erste eingabe übersprungen wird.
Weiß jemand Rat?
Code:
package main;
import java.util.Scanner;
public class ScannerTest {
Scanner sc = new Scanner(System.in);
String name;
String device;
int choice;
/** Erstellt einen Robot*/
void create() {
System.out.println("Enter a name: ");
name = sc.nextLine();
System.out.println("Enter a device: ");
device = sc.nextLine();
}
/** Löscht den Robot*/
void delete() {
name = "";
device = "";
System.out.println("Deleted!");
}
/** Zeit die Daten des Robots*/
void show() {
System.out.println("Name: " + name);
System.out.println("Device: " + device);
}
/** Führt aus */
void run() {
do {
System.out.println("[1]New [2]Delete [3]List [0]Exit");
choice = sc.nextInt();
if (choice == 1) {
create();
} else if (choice == 2) {
delete();
} else if (choice == 3) {
show();
} else if (choice == 0) {
System.out.println("Bye!");
}
} while (choice != 0);
}
public static void main(String[] args) {
ScannerTest obj = new ScannerTest();
obj.run();
}
}