Tutorial 1_8

Fallunterscheidung mit switch

______________________________________________________________________
//1_8 
#include <stdio.h>
char optionsnummer;
float wert1, wert2;
int wert1a, wert2a;

void main(void)
{
    printf("Welche Rechenart wollen sie anwenden?\n"
        "1 Addition\n"
        "2 Subtraktion\n"
        "3 Multiplikation\n"
        "4 genaue Division\n"
        "5 Division mit Rest\n"
        "Geben sie die entsprechende Nummer ein\n");
    scanf("%d", &optionsnummer);
    if(optionsnummer != 5)
    {
        printf("Geben sie 2 Dezimalbrueche ein\n");
        scanf("%f %f", &wert1, &wert2);
    }
    else
    {
        printf("Geben sie 2 ganze Zahlen ein\n");
        scanf("%d %d", &wert1a, &wert2a);
    }
    switch(optionsnummer)
    {
    case 1:
        printf("Die Summe der beiden Werte %f und %f ist %f\n",
            wert1, wert2, wert1+wert2);
        break;
    case 2:
        printf("Die Differenz der beiden Werte %f und %f ist %f\n",
            wert1, wert2, wert1-wert2);
        break;
    case 3:
        printf("Das Produkt der beiden Werte %f und %f ist %f\n",
            wert1, wert2, wert1*wert2);
        break;
    case 4:
        printf("Der Quotient der beiden Werte %f und %f ist %f\n",
            wert1, wert2, wert1/wert2);
        break;
    case 5:
        printf("Der Quotient der beiden Werte %d und %d ist %d,\n"
            "der Rest betraegt %d\n",
            wert1a, wert2a, wert1a/wert2a, wert1a%wert2a);
        break;
    default:
        printf("Falsche Eingabe\n");
        break;
    }
}
______________________________________________________________________
Jetzt können wir doch tatsächlich schon einen kleinen Taschenrechner programmieren: Die printf() - und die scanf() - Funktion am Anfang der Main() - Funktion lassen den Anwender eine Rechenart auswählen, dann wird per if-else gefragt, ob eine Division mit Rest ausgewählt wurde. Wenn nicht, dann darf der Anwender Kommazahlen eingeben, ansonsten nur ganze Zahlen. Nun kommt der wirklich neue und interessante Teil, die switch()-anweisung: In den runden Klammern wird die Variable übergeben, die abgefragt werden soll, in diesem Fall die Variable, in der wir vorher gespeichert haben, welche Rechenart wir anwenden wollen. In den geschweiften Klammern findet das eigentliche switch()-Gerüst statt: Im Fall optionsnummer = 1, also Addition, was wir mit case 1: angeben lassen wir das Progrmm eine Addition ausführen und das Ergebnis anzeigen, im Fall 2 führen wir eine Subtraktion aus, usw., am Ende eines jeden Falles lassen wir das Programm mit dem break -Befehl noch das switch-Konstrukt verlassen, schließlich soll ja nur einer der switch-Zweige durchlaufen werden. Nach dem letzen Fall sorgen wir mit default: noch für den Fall vor, dass der Wert der abgefragten Variablen keinem case - Zweig entsrpricht.
Zurück