Ich wollte mal switch ausprobieren und habe aber folgendes problem .. wenn ich die methode 3 mal aufrufe wird mir immer 0 ausgegeben ... was ist das falsch?
Java:
int zahl =0;switch(zahl){case0:System.out.println ("0");
erntezahl++;break;case1:System.out.println ("1");
erntezahl++;break;case2:System.out.println ("2");
erntezahl++;break;case3:System.out.println ("3");break;}}}
nichts anderes zuweisst, wird immer 0 aufgerufen. switch läuft bei dir nicht
durch, da du eine break-Anweisung stehen hast. Damit bricht es bei 0 ab. Schreib
doch mal
Java:
int zahl =2;
, dann wirst du sehen was passiert. Oder lass doch mal alle break´s weg, dann hat switch
durchfall...
Ich hab eine Aufgabe bekommen einen einfachen "Ticketautomaten" zu schreiben. Bin recht lang dran gesessen weil ich nicht wusste ob ich switch oder if - else if - else "falsch verwendet habe".
Das Programm ist fertig und funktioniert auch, aber es sieht echt umständlich aus obwohl die Aufgabe einfach scheint. Nun will ich fragen ob ich das besser hätte machen können.
Finde auch nichts belustigend an der Lösung.
Nur mal als Beispiel, dort werden gerade mal 5 Vergleiche im Worst Case durchgeführt.
Bei dir sind es im Worst Case aber 9.
Zu viele Switch-Case bzw. zu viele If-Abfragen, für zu wenige Daten
Lustig war hier als Selbstkritik zu verstehen.
Lustig finde ich das weil ich nicht wusste das ich keine Eingaben benötige, natürlich ist die Buchlösung total logisch, und ich so umständlich viel geschrieben habe weil ich das Programm "eingabe-fähig" machen wollte. Sprich wenn ich kompiliere und starte nicht nur "Fakten" rauskommen sondern ich gefragt werde welche karte ich will, und welche Zone.
BTW: Wie könnte ich nun MEIN code verbessern? Ich nehme an das zB:
Alle Switch-Case Fälle können in äquivalente If-Else Abfragen umgeformt werden.
Ist aber nicht immer sinnvoll.
Dein Problem ist auch nicht, dass du eine Eingabe ermöglichen wolltest, denn die Musterlösung wäre auch mit Eingabe nicht anders.
Man braucht schlicht nicht mehr Abfragen, als in der Lösung
@Leck0rkuchen
nein, ein solches switch kann man mit einfachen Mitteln nicht besser machen,
nur könntest du in diesem switch gleich noch den Preis mit setzen