User Tools

Site Tools


switch

This is an old revision of the document!


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).

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 einen default Zweig ein zu führen. 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

#!/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

C++

#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");
	}
}

C#

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 1: Console.WriteLine("Du bist zwei Jahre alt"); break;
				case 1: Console.WriteLine("Du bist drei Jahre alt"); break;
				case 1: 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

import (
	"fmt"
	"strings"
)
 
// Variable anlegen
age int = 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")
}

Java

public class Switcher {
	public static void main(String[] args) {
		int age = 3;
	        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;
	}
}

Javascript

<!DOCTYPE HTML>
<!-- HTML Grundstruktur -->
<html>
  <body>
    <script>
      // Variablen anlegen
      var one = "Walter";
      var two = "walter";
 
      // Vergleichen
      if(one === two) {
        // Ausgabe, wenn die beiden Strings ident sind
	alert(one+" equals "+two);
      } else {
        // Ausgabe, wenn die beiden Strings nicht ident sind
	alert(one+" equals not "+two);
      }
    </script>
  </body>
</html>

Perl

#!/usr/bin/perl
 
use strict;
use warnings;
 
# Variablen anlegen
my $one = "Walter";
my $two = "walter";
 
# Vergleichen
if($one eq $two) {
	# Ausgabe, wenn die beiden Variablen ident sind
	print $one." equals ".$two."\n";
} else {
	# Ausgabe, wenn die beiden Variablen nicht ident sind
	print $one." equals not ".$two."\n";
}

Python3

#!/usr/bin/python3
 
# Variablen anlegen
one = "Walter";
two = "walter";
 
# Vergleichen
if one == two:
	# Ausgabe, wenn die beiden Strings ident sind
	print(one+" equals "+two)
else:
	# Ausgabe, wenn die beiden Strings nicht ident sind
	print(one+" not equals "+two)

PHP

<?php
 
// Variablen anlegen
$one = "Walter";
$two = "walter";
 
// Vergleichen
if($one === $two) {
	// Ausgabe, wenn die beiden Strings ident sind
	echo "one equals two";
} else {
	// Ausgabe, wenn die beiden Strings nicht ident sind
	echo "one equals not two";
}
switch.1498570542.txt.gz · Last modified: 2017/06/27 15:35 by gg