Eine Verzweigung ist eine wichtige Kontrollstruktur. Sie legt fest, welcher von zwei (oder mehr) Programmabschnitten, abhängig von einer (oder mehreren) Bedingungen, ausgeführt wird. Sie können in der Java-Programmierung nur im Körper von Methoden und Konstruktoren implementiert werden.
Eine bedingte Anweisung ist die einfachste Form einer Verzweigung und ist in der Programmierung ein Programmabschnitt, der nur unter einer bestimmten Bedingung ausgeführt wird. Eine bedingte Anweisung besteht aus einer Bedingung (im Sinne der booleschen Algebra auch Aussage genannt) und einem Körper, der wiederum aus einer oder mehreren Anweisungen besteht.
Wird bei der Programmausführung die bedingte Anweisung erreicht, dann wird erst die Aussage ausgewertet, und falls diese zutrifft (und nur dann) wird anschließend der Codeabschnitt des Körpers (Codeabschnitt innerhalb der geschweiften Klammern {}) ausgeführt (siehe Abbildung). Danach wird in jedem Fall die Programmausführung mit den auf die bedingte Anweisung folgenden Anweisungen fortgesetzt (siehe Abbildung Zeile 28).
Eine Verzweigung besteht aus einer Bedingung und zwei Codeabschnitten. Wieder wird erst die boolesche Aussage ausgewertet (siehe Abbildung). Falls sie zutrifft, wird anschließend der Körper der IF-Anweisung ausgeführt. Anderenfalls wird der Körper der ELSE-Anweisung abgearbeitet. Danach wird auch hier in jedem Fall die Programmausführung mit den auf die IF-ELSE Anweisung folgenden Anweisungen fortgesetzt (siehe Abbildung Zeile 42).
Bei mehrfach Verzweigungen werden boolesche Aussagen der Reihe nach ausgewertet (siehe Abbildung ), solange bis eine davon zutrifft. Dann wird der zu dieser Bedingung gehörende Codeabschnitt ausgeführt und die Behandlung der mehrfachen Verzweigung ist damit beendet. Wenn keine der Bedingungen zutrifft, wird der else-Teil ausgeführt, falls er vorhanden ist. Er ist auch hier optional. Danach wird in jedem Fall die Programmausführung mit dem auf die bedingte Anweisung folgende Code-Abschnitt fortgesetzt. Die mehrfache Verzweigung kann auch durch eine case Anweisung implementiert werden.
Java bietet unterschiedliche Einsatz- und Kombinationsmöglichkeiten von Verzweigungen. In den Körpern der IF, ELSE und ELSE IF Blöcken können weitere bedingte Anweisungen und Verzweigungen eingebaut werden. Es besteht die Möglichkeit die Verzweigungen beliebig tief zu verschachteln. Zudem können zum Aufbau von Aussagen im Sinne der booleschen Algebra Instanz- und lokale Variablen sowie Konstanten, Methodenaufrufe mit Rückgabeparametern und Schleifen kombiniert werden.