This is an old revision of the document!
Table of Contents
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.
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,….
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.
if-elseif-else Konstrukte
Alle folgenden Beispiele machen wieder das selbe. Zwei strings werden verglichen. Alle Beispiele liefern das selbe Ergebnis. Nämlich, dass die strings nicht ident sind.
Natürlich würde man normalerweise die beiden Strings nicht einfach setzen, sondern aus einer Datenbank, als Funktionsparameter oder Programmparameter einlesen. Das aber würde den Rahmen hier sprengen.
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", "Du bist ein Jahr alt"); } }
C#
using System; namespace IfStatements { class ShowIf { static void Main() { // Variablen anlegen string one = "Walter"; string two = "walter"; // Vergleichen if(one.equals(two)) { // Ausgabe, wenn die beiden Strings ident sind Console.WriteLine(one+" equals "+two); } else { // Ausgabe, wenn die beiden Strings nicht ident sind Console.WriteLine(one+" equals not "+two); } } } }
Golang
import ( "fmt" "strings" ) // Variablen anlegen one string = "Walter"; two string = "walter"; // Vergleichen if(strings.Compare(one, two)) { // Ausgabe, wenn die beiden Strings ident sind fmt.Println("one equals two") } else { // Ausgabe, wenn die beiden Strings nicht ident sind fmt.Println("one equals not two") }
Java
public class HelloWorld { public static void main(String[] args) { // Variablen anlegen String one = new String("Walter"); String two = new String("walter"); // Vergleichen if(one.equals(two)) { // Ausgabe, wenn die beiden Strings ident sind printf("%s%s%s%s", one, " equals ", two, "\n"); } else { // Ausgabe, wenn die beiden Strings nicht ident sind printf("%s%s%s%s", one, " equals not ", two, "\n"); } } }
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"; }