User Tools

Site Tools


switch

switch Statement

Das switch ist im Grunde ein allgemeines if - elseif - else Konstrukt. Oftmals ist es schneller (Es wird direkt in den case gesprungen und nicht wie bei if - elseif - else Konstrukten, bei denen oft auch jede Bedingung geprüft werden muss). Es wird oft geschrieben, dass es besser lesbarer, besser verständlich und einfacher zum Testen sei.

Allerdings kommt das switch Statement oftmals mit Einschränkungen. So kann es beispielsweise je nach Programmierprache nur für einzelne Zeichen oder Zahlen verwendet werden.

Oft muss aus einem Zweig explizit ausgestiegen werden. Bei der bash erfolgt das durch zwei Semikolons, bei C++ wäre es das break. Es ist auch grundsätzlich keine schlechte Idee den default Zweig zu benutzen. Das erleichtert die Fehlerfindung, bzw. kann man eine Fehlermeldung ausgeben.

Die folgenden Beispiele sind vom Ergebnis wieder ident. Es wird eine Zahl festgelegt, die als switch fungiert. Wieder ist es so, dass diese Zahl normalerweise irgendwo her kommt. Sei es aus einer Datenbank, aus einer Benutzereingabe, ein ausgerechneter Wert,….

Bash

Das Programm

#!/bin/bash
 
# Variable anlegen
age=3
 
# switchen
case "$age" in
    1)  echo "Du bist ein Jahr alt" ;;
    2)  echo "Du bist zwei Jahre alt" ;;
    3)  echo "Du bist drei Jahre alt" ;;
    4)  echo "Du bist vier Jahre alt" ;;
    *)  echo "Ich kann nicht feststellen wie alt du bist. Bitte eine Zahl von 1-4 eingeben"
esac

Ausführen

switch.sh erstellen und so ausführen

chmod +x switch.sh # als ausführbar markieren
./switch.sh        # ausführen

C++

Das Programm

#include <iostream>
#include <cstring>
 
int main() {
    // Variable anlegen
    int age = 3;
 
    // switchen
    switch (age) {
        case 1:  printf("%s", "Du bist ein Jahr alt"); break;
        case 2:  printf("%s", "Du bist zwei Jahre alt"); break;
        case 3:  printf("%s", "Du bist drei Jahre alt"); break;
        case 4:  printf("%s", "Du bist vier Jahre alt"); break;
        default: printf("%s", "Ich kann nicht feststellen wie alt du bist. Bitte eine Zahl von 1-4 eingeben");
    }
}

Kompilieren und ausführen

switch.cpp erstellen und so kompilieren/ausführen:

g++ -Wall -g -std=c++14 switch.cpp -o switch # kompilieren
./switch                                     # ausführen

C#

Das Programm

using System;
 
namespace IfStatements 
{
    class ShowIf
    {
        static void Main() 
        {
            // Variable anlegen
            int age = 3;
 
            // switchen
            switch (age) {
                case 1:  Console.WriteLine("Du bist ein Jahr alt"); break;
                case 2:  Console.WriteLine("Du bist zwei Jahre alt"); break;
                case 3:  Console.WriteLine("Du bist drei Jahre alt"); break;
                case 4:  Console.WriteLine("Du bist vier Jahre alt"); break;
                default: Console.WriteLine("Ich kann nicht feststellen wie alt du bist. Bitte eine Zahl von 1-4 eingeben"); break;
            }
        }
    }
}

Golang

Das Programm

package main
 
import (
    "fmt"
)
 
func main() {
    // Variable anlegen
    age := 3;
 
    // switchen
    switch age {
        case 1:    fmt.Println("Du bist ein Jahr alt")
        case 2:    fmt.Println("Du bist zwei Jahre alt")
        case 3:    fmt.Println("Du bist drei Jahre alt")
        case 4:    fmt.Println("Du bist vier Jahre alt")
        default:   fmt.Println("Ich kann nicht feststellen wie alt du bist. Bitte eine Zahl von 1-4 eingeben")
    }
}

Ausführen

Java

Das Programm

public class Switcher {
    public static void main(String[] args) {
        // Variable anlegen
        int age = 3;
 
        // switchen
        switch (month) {
            case 1:  System.out.println("Du bist ein Jahr alt"); break;
            case 2:  System.out.println("Du bist zwei Jahre alt"); break;
            case 3:  System.out.println("Du bist drei Jahre alt"); break;
            case 4:  System.out.println("Du bist vier Jahre alt"); break;
            default: System.out.println("Ich kann nicht feststellen wie alt du bist. Bitte eine Zahl von 1-4 eingeben"); break;
	}
}

Kompilieren und ausführen

Die Datei Switcher.java erstellen und so ausführen:

javac Switcher.java
java Switcher

Javascript

Das Programm

<!DOCTYPE HTML>
<!-- HTML Grundstruktur -->
<html>
  <body>
    <script>
      // Variable anlegen
      var age = 3;
 
      // switchen
      switch (age) {
        case 1:  alert("Du bist ein Jahr alt"); break;
        case 2:  alert("Du bist zwei Jahre alt"); break;
        case 3:  alert("Du bist drei Jahre alt"); break;
        case 4:  alert("Du bist vier Jahre alt"); break;
        default: alert("Ich kann nicht feststellen wie alt du bist. Bitte eine Zahl von 1-4 eingeben"); break;
      }
    </script>
  </body>
</html>

Ausführen

Den Code in die Datei switch.html kopieren und mit dem Browser öffnen

Perl

Das Programm

#!/usr/bin/perl
 
use strict;
use warnings;
use Switch;
 
# Variable anlegen
my $age = 3;
 
# switchen
switch ($age) {
    case 1 { print "Du bist ein Jahr alt\n"; }
    case 2 { print "Du bist zwei Jahre alt\n"; }
    case 3 { print "Du bist drei Jahre alt\n"; }
    case 4 { print "Du bist vier Jahre alt\n"; }
    else   { print "Ich kann nicht feststellen wie alt du bist. Bitte eine Zahl von 1-4 eingeben\n"; }
}

Ausführen

Die Datei switch.pl erstellen und so ausführen:

perl switch.pl

PHP

Das Programm

<?php
 
// Variable anlegen
$age = 3;
 
// switchen
switch ($age) {
    case 1:  echo "Du bist ein Jahr alt"; break;
    case 2:  echo "Du bist zwei Jahre alt"; break;
    case 3:  echo "Du bist drei Jahre alt"; break;
    case 4:  echo "Du bist vier Jahre alt"; break;
    default: echo "Ich kann nicht feststellen wie alt du bist. Bitte eine Zahl von 1-4 eingeben"; break;
}

Ausführen

Die Datei switch.php erstellen und so ausführen:

php switch.php

Python3

In Python gibt es kein switch im eigentlichen Sinne. Mit ein bisschen Tricksen bekommt man trotzdem eines hin. Das wird hier aber ausgelassen.

switch.txt · Last modified: 2017/06/28 13:37 by gg