User Tools

Site Tools


switch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
switch [2017/06/27 15:05] ggswitch [2017/06/28 13:37] (current) gg
Line 1: Line 1:
 ====== switch Statement ====== ====== 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). \\+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. \\ 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,.... 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 ===
 +<code bash>
 +#!/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
 +</code>
 +
 +=== Ausführen ===
 +switch.sh erstellen und so ausführen
 +<code bash>
 +chmod +x switch.sh # als ausführbar markieren
 +./switch.sh        # ausführen
 +</code>
 +
 +===== C++ =====
 +=== Das Programm ===
 +<code cpp>
 +#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");
 +    }
 +}
 +</code>
 +=== Kompilieren und ausführen ===
 +switch.cpp erstellen und so kompilieren/ausführen:
 +<code bash>
 +g++ -Wall -g -std=c++14 switch.cpp -o switch # kompilieren
 +./switch                                     # ausführen
 +</code>
 +===== C# =====
 +=== Das Programm ===
 +<code csharp>
 +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;
 +            }
 +        }
 +    }
 +}
 +</code>
 +
 +===== Golang =====
 +=== Das Programm ===
 +<code go>
 +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")
 +    }
 +}
 +</code>
 +=== Ausführen === 
 +[[https://tour.golang.org|Online go compiler]]
 +
 +===== Java =====
 +=== Das Programm === 
 +<code java>
 +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;
 + }
 +}
 +</code>
 +=== Kompilieren und ausführen ===
 +Die Datei Switcher.java erstellen und so ausführen:
 +<code bash>
 +javac Switcher.java
 +java Switcher
 +</code>
 +
 +===== Javascript =====
 +=== Das Programm ===
 +<code javascript>
 +<!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>
 +</code>
 +=== Ausführen ===
 +Den Code in die Datei switch.html kopieren und mit dem Browser öffnen
 +
 +===== Perl =====
 +=== Das Programm ===
 +<code perl>
 +#!/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"; }
 +}
 +</code>
 +
 +=== Ausführen ===
 +Die Datei switch.pl erstellen und so ausführen:
 +<code bash>
 +perl switch.pl
 +</code>
 +
 +===== PHP =====
 +=== Das Programm ===
 +<code php>
 +<?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;
 +}
 +</code>
 +=== Ausführen ===
 +Die Datei switch.php erstellen und so ausführen:
 +<code bash>
 +php switch.php
 +</code>
 +
 +===== 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.1498568728.txt.gz · Last modified: 2017/06/27 15:05 by gg