Java: Wie kann ich in switch-Statements Benutzereingaben verarbeiten?
Hallo!
Also, ich muss eine Ampel in Java basteln. Die Ampel soll wechseln:
rot => rot-gelb => gelb => grün => rot => rot-gelb => gelb...
Ich habe jetzt ein Switch Statement (switch case) verwendet:
public class TrafficLight {
public static void main(String[] args) {
int tl = 2;
String tlString;
switch (tl) {
case 1: tlString = "red";
break;
case 2: tlString = "red-yellow";
break;
case 3: tlString = "green";
break;
case 4: tlString = "yellow";
break;
default: tlString = "Invalid tl";
break;
}
System.out.println(tlString);
}
}
Das funktioniert schonmal, aber ich bekomme nur „red-yellow” als Ausgabe. Damit ist die 1. Hälfte getan. Nun müsste der Benutzer nur noch eine Aktion machen (z.B. „c” eingeben). und dann sollte die Ampel umschalten (also auf grün wechseln). Ich habe also mit
import java.util.Scanner;
den Scanner importiert (1. Zeile) und dann zwischen die letzten beiden geschweiften Klammern (s.o.)
public static void input(String[] args) {
Scanner scan = new Scanner(System.in);
int y = scan.nextInt();
System.out.println("Please enter a the letter c:");
int year = scan.nextInt();
}
eingefügt. Aber Java gibt noch nichtmal die Ausgabe aus, dass eine Eingabe erwartet wird und Eingaben sind auch nicht möglich! Was mache ich falsch? Oder ist die Idee generell falsch?
Hier die Aufgabe im Original:
Implementieren Sie die Steuerung einer Verkehrsampel. Die Verkehrsampel kann sich dabei ausschlielich in einem der folgenden vier Zustände benden: rot, rot-gelb, grün und gelb. Die Ampel darf dabei nur von rot auf rot-gelb, von rot-gelb auf grün, von grün auf gelb und von gelb auf rot umschalten. Schreiben Sie eine Klasse TrafficLight, die diesen Anforderungen genügt. Die Klasse soll jeweils eine Methode zum Weiterschalten der Ampel zwischen den erlaubten Zuständen anbieten. Ferner sollte es möglich sein, denaktuellen Zustand der Ampel auf den Bildschirm auszugeben. Schreiben Sie eine Main-Methode, in der Sie ihre Implementierung gründlich testen.
Danke im Voraus!
1 Antwort
Die Klasse selbst soll doch nur den Zustand halten können (als Variable - private nehme ich an), sowie eine Methode "umschalten" beinhalten. Darüber hinaus soll sie dir den momentanen Status ausgeben können ("printStatus" oder ähnlich).
Das erfüllt deine Klasse schonmal gar nicht und die Hausaufgabe wäre nicht erfüllt.
Danach kannst du dich an eine Main machen, die das dann testet, meinetwegen mit Benutzereingabe. Soweit bist du aber noch lange nicht.