Jetzt lerne ich Java 6

switch-case

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Deutlich übersichtlicher und vor allem bei langen Entscheidungslisten unumgänglich ist das switch-Konstrukt. Nur so können Sie flexibel und doch nachvollziehbar auf viele Ausgangszustände entsprechend reagieren.
06:47

Transkript

In meinem Beispiel habe ich ein kleines Programm geschrieben, das abhängig von den Vorgaben hier oben der Richtung an Himmelsrichtung ausgibt. Es gibt insgesamt vier Varianten, je nachdem wie ich diesen char hier umbelege, mit 'n', 'o', 's' oder 'w' wird hier unten in dem entsprechenden Satz auf der Consolle ausgegeben. Ich habe zur Zeit 's' vorgegeben, und wenn ich das kompalieren und ausführen lasse, sehen Sie, dass auf der Console jetzt hier ein "Süden" auftaucht. Ende ich hier oben diese Einstellung mal kurzerhand in 'n' wie Norden, das heißt, das Ganze kompalieren, sehen Sie, hier bekommen wir die Ausgabe "Norden". Hierfür funktionieren die if-Statements noch ganz gut, und so, wie ich das eingerückt habe, ist das doch ganz übersichtlich. Aber wenn die Programme länger warten, kann das Ganze dann schon relativ unglücklich unübersichtlich werden gerade, wenn hier nicht nur einen Befehl steht, sondern hier vielleicht ganze Codeblocke. Und daher werde ich Ihnen in diesem Film die switch-case-Statements vorstellen. Diese sollen gerade in solchen Fällen Ihnen eine Arbeitserleichterung darstellen. Hierfür markiere ich mir zuerst einmal diesen Block und lasse Ihnen über "Source" "Comment" erst einmal auskommentieren, damit wir hier oben nun noch einmal einen Richtungstest implementieren. Das Erste, was wir in einem switch-case-Statement machen müssen, ist, mit Hilfe von switch das Ganze einleiten und hinter switch in runde Klammern den Ausdruck schreiben, von dem nun der Programmablauf abhängig ist. Dabei dürfen Sie hier nur primitive Datentypen verwenden. Das wären chars, Zahlen, wie Integer shorts oder longs, aber keinen Double oder Strings, wie gesagt, nur primitivie Datentypen sind hier erlaubt. Hier gibt man diese Stelle also jetzt richtung ein, und können, nun, mit einem Codeblock anschließen. Der Codeblock wird abgebildet durch geschweifte Klammern, und innerhalb dieses Codeblocks werden wir, nun, die verschiedenen Fehler, die Richtung annehmen kann, abarbeiten. Der Fall, das ist das englische Wort "case", wird eingeleitet mit case, und dahinter schreiben wir nun, welchen Fall wir abarbeiten wollen. In unserem Fall wäre das zuerst zum Beispiel "der Osten". Wenn also 'o' nach ihnen steht, Sie sehen, dass ich hier einfache Einführungszeichen setze, da wir es mit einem char und keinem String, also keiner Zeichenkette zu tun haben, sondern mit einzelnen Buchstaben. Würden Sie hier eine doppelte Einführungszeichen setzen, würde dies als Strign bedeutet werde, und richtung ist eben kein String, sondern ein char, und das würde nicht funktionieren. Nach dem beschreibendes Case, also des Falles setzen wir einen Doppelpunkt, und alles, was Sie nun hier danach schreiben, wird eben in diesem Fall abgearbeitet. In unserem Fall ist es, ja, relativ kurz. Wir wollen hier einfach nur mit System.out.println("Osten") ausgegeben haben. Danach können wir den nächsten Case abarbeiten: case, machen wir weiter in "Süden", Doppelpunkt (case 's' :), das wäre jetzt Süden, case 'w' (Westen) und dann noch zum Abschluss den Norden ('n' ). Können wir den ganzen Code noch einmal neu schreiben lassen: rechte Maustaste Reformat Code, und dann sieht das Ganze schon etwas schöner aus, und hier diese geschweiften Klammern ziehen wir hier noch etwas daran. Nun, das ist das grundliegende switch-case- Konstrukt hier oben, gibts also die Weiche den switch anhängig von richtung, wird, nun, eine diesers Cases angesprungen und die Befehle, die darinnen stehen, ausgeführt. Jetzt gibt es doch noch eine Kleinigkeit zu beachten, und zwar wenn ich jetzt hier zum Beispiel 'n' an deren Stelle habe, dann springt er hier auf diesen Case und wird uns das hier ausgeben. Na, testen wir es! Oh, das fuktioniert. Wunderbar! Wenn ich jetzt hier doch "Osten" ausgeben lassen wollte, müsste ich hier oben 'o' setzen, und wir werden jetzt eine kleine Enttäuschung erleben. Hier gibt es zwar "Osten" aus, aber auch andere Himmelsrichtungen. Was ist da passiert? Nun, die Cases bestimmen, an welche Stelle innerhalb dieses Codeblocks der Interpreter nun springt. In unserem Fall, wenn hier oben 'o' steht, eben an dieser Stelle, das führt er dann noch aus, aber dann geht er einfach von oben nach unten weiter, und gibt noch alle anderen Varianten aus. Das ist das, was wir in diesem Beispiel unbedingt nicht wollen. In anderen Fällen kann das aber gewollt sein, und daher ist Switch-Case so entsprechend angeliegt worden. Wenn wir also jetzt verhindern wollen, dass nach dieser Stelle die anderen Cases auch noch mit ausgegeben werden, dann müssen wir noch einen weitere Befehl kennen lernen. Das ist der Befehl break. Mit Hilfe von break können wir an einer beliebigen Stelle einen Codeblock verlassen. Und wenn wir hier also break eingeben, wird der Codeblock hier verlassen, und dadurch werden natürlich auch nicht alle anderen Fehler abgearbeitet. Und dass wenn wir jetzt hier in jeder Zeile einfügen, dann schon ist das Problem gelöst, denn egal welchen Case wir anspringen, wird immer nur die Zeile ausführen und damit einen break im Codeblock verlassen. Testen wir das! Jetzt bekommen wir auch nur noch den "Osten" ausgegeben, genau das, was wir uns wollten. Ich habe jetzt hier ganz unten im letzten Case das break noch weggelassen. Wir können dieses aber hier auch noch einfügen, ganz, wie Sie wollen. Dies mag vielleicht ganz sinnvoll erscheinen, wenn ich Ihnen jetzt noch einen ganz besonderen Case vorstelle, den Case default. Denn wir haben uns zwar vertrauen in unserer Programmierkunst, aber es kann immer wieder mal passieren, dass hier oben jemand bei richtung vielleicht einen Blödsinn einschreibt, zum Beispiel ein x. Und wenn ich das Ganze jetzt dann ausführen lassen würde, dann sehen Sie, dass er keine Ausgabe bekommt. Aber keine würde jemals auf die Idee kommen, warum er keine Ausgabe bekommt, dass wir einen Fehler bei der Eingabe dadrum gemacht haben. Und das können wir auch noch abfragen. Und das ist ein typischer default-Case. Das bedeutet, wenn keiner dieser Cases anspringt, dann können wir sozusagen einen Stadard-Case definieren, und das leiten wir durch default ein, Doppelpunkt (:) wieder, und darunter können wir jetzt zum Beispiel freulich den Programmierer beschimpfen, dass er die falsche Richtung vergeben hat. Sie haben eine ungültige Richtung vergeben, zum Beispiel. Können wir das jetzt testen, dann sehen Sie, kriegen wir also unseren Fehler wunderschön kritiert. Alles andere, natürlich, funktioniert immer noch, und damit wäre unser Beispiel, nun, jetzt am Ende. Wir haben gesehen, das Ganze kann schön übersichtlich sein, und daher gerade bei Tastatureingaben oder ähnlichen verwenden Programmierer sehr gerne Switch-Case.

Jetzt lerne ich Java 6

Steigen Sie ein in die Programmierung mit Java 6, lernen Sie die Grundlagen kennen und unternehmen Sie anschließend Ihre ersten Schritte in der objektorientierten Programmierung.

12 Std. 27 min (98 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!