Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
bin etwas ratlos. Hab schon viel gegoogelt aber wurde eig. nur noch mehr verwirrter. Wir haben folgende Aufgaben:
1)Schreibe einen Aufzählungstypen Ampel, der die Farben einer Fahrzeug-Ampel definiert.
Das wäre dann ja:
Java:
class Ampel {
public static void main(String[] args) {
}
}
enum Farbe { rot, gelb, gruen }
Oder lieg ich da falsch? Oder reicht nur die 5.Zeile und die Datei ist auch lauffähig?
2.) Deklarieren sie im Anschluss im Hauptprogramm (in einer seperaten Datei) eine Variable mit diesem Aufzähungstyp und führen Sie mit einer Fallunterscheidung eine Überprüfung durch. Bei der Überprüfung soll mit der Druck-Methode eine Ausgabe erfolgen, welche Farbe die Ampel hat und ob man fahren darf. Setzen sie danach die Ampelfarbe auf die nach Verkehrsregeln folgende Farbe und wiederholen sie obige Überprüfung.
Muss ich für die Fallunterscheidung if-else benutzen? Jedenfalls kam in den Vorlesungen bisher noch nichts vor was mir sinnvoller erscheint. Und wenn ja wie benutz ich das, weil ich für if boolsche Werte brauche.
Und wie deklarier ich eine Variable mit dem Aufzählungstypen?
Hab da ja an folgendes gedacht:
Java:
Farbe A = Farbe.rot;
Farbe B = Farbe.gelb;
Farbe C = Farbe.gruen;
Probiere es doch einfach aus. Installier dir eclipse, NetBeans oder von mir aus auch BlueJ, tippe deinen Code ein und siehe, was passiert.
Oder ist es Teil der Aufgabenstellung, dass du das Ganze ohne Kompiler löst?
Sagt dir switch-case schon etwas sonst ist if, else if, else schon richtig.
Nein also zurzeit arbeite ich mit Notepad++. Aber so wie ich gehört habe, dürfen wir auch andere Programme benutzen. Jedoch kenne ich mich nicht damit aus.
Ja bisher hab ich dann ja folgendes gedacht:
Java:
package ampel;
public class Ampel {
public static void main(String[] args) {
Farbe A = Farbe.rot;
Farbe B = Farbe.gelb;
Farbe C = Farbe.gruen;
if (A == Farbe.rot);
System.out.println ("Anzeige rot. Stopp. Anhalten.");
else (A= !rot);
}
}
enum Farbe { rot, gelb, gruen }
Jedoch bin ich mir jetzt nicht über das weitere Vorgehen klar. Also wie ich die Ampel auf die nächste Farbe schalten lasse.
Okay.
Nein,schleifen sagen mir nichts.
! steht ja für nicht. Also wenn A nicht rot ist, dann soll es mir sagen welche Farbe stattdessen gerade leuchtet.
Das mit der einzelnen Variable verwirrt mich (auch aufgrund des enums). Da ich nicht wirklich weiß wie man damit arbeitet. Es war nur ein Beispiel auf dem Aufgabenzettel und danach hab ich den Enum für die Ampelfarben definiert.
Sonst wurde uns auch nichts zu dem enum gesagt.
Aufgabenstellung: 1)Schreibe einen Aufzählungstypen Ampel, der die Farben einer Fahrzeug-Ampel definiert.
Hier steht nichts davon, dass das ein "ausführbares Programm" ergeben muss. (Also warum eine main()-Methode?)
Warum benennst du den Aufzählungstyp 'Farbe', wenn der Aufgabensteller 'Ampel' vorgibt?
Also
Java:
public enum Ampel { rot , gelb , gruen }
und fertig mit Aufgabe 1.
PS: Eine Ampel kann auch gelb_rot oder gelb_blinkend oder schwarz_aus sein.
Insofern muss ich Gucky widersprechen - es fehlen noch 3 Zustände, nicht nur einer.
Darf ich Senf dazu geben?
Fand die Aufgabe interessant, hab gerade nur leider nicht viel Zeit.
Trotzdem mal ein kleiner Ansatz, habs nicht getestet, also bitte verurteilt mich nicht ^^
Konstruktives Feedback ist aber immer herzlich wilkommen x3
[Java]package ampel;
public enum AmpelFarbe
{
ROT(),
GRUEN(),
GELB();
}[/code]
Es ist ein Ansatz, auf dem sich aufbauen lässt (mehrere Durchläufe, variabler Anfang etc.).
Ich habe spontan keinen Fehler gefunden, nur speicherst du die Farbe als Enum und als String.
Für enum-Tests ist ein switch schöner;
um eine Ampelfarbe als String zu erhalten, sollte man farbe.toString() verwenden, und (wenn's denn sein muss) die .toString() im enum überschreiben. (Wird in den Java-APIs bei java.lang.Enum so empfohlen ...)
Ansonsten bleib' ich bei meinen obigen Anmerkungen, die wohl ebenfalls akut bleiben...
Ach ja, dass 'erlaubnis' "" oder "nicht " ist ~ thematisch sollte das boolean sein, aber ok. Nur der Blank hinter "nicht " ist unschön, den würde man wohl nicht erwarten. (Falls jemand auf die Idee kommt: If( erlaubnis.equals("nicht") ) abzufragen, rechnet er bestimmt nicht mit 'nem Blank hinten dran.)