diff options
| author | caminsha <c.96marco@hotmail.com> | 2020-01-31 01:42:28 +0100 | 
|---|---|---|
| committer | caminsha <c.96marco@hotmail.com> | 2020-01-31 01:42:28 +0100 | 
| commit | dcf628e2866634bee9e9e04ecbb336885adaf7e4 (patch) | |
| tree | e47479bf184d491e8057a328d93723dec33ddcf8 | |
| parent | ea00cc1fdac7acded85b8aad0eb2ac5e09b8e5d7 (diff) | |
translated control structures to German
| -rw-r--r-- | de-de/c-de.html.markdown | 85 | 
1 files changed, 85 insertions, 0 deletions
| diff --git a/de-de/c-de.html.markdown b/de-de/c-de.html.markdown index 69576da0..b027cdbe 100644 --- a/de-de/c-de.html.markdown +++ b/de-de/c-de.html.markdown @@ -287,4 +287,89 @@ int main (int argc, char** argv){      // - Shift um einen Offset, welcher >= die Breite des linken Ausdrucks ist.      // int a = 1 << 32; // undefiniertes Verhalten, wenn int 32-Bit ist. +    //////////////////////////////////////////////// +    // Kontrollstrukturen +    //////////////////////////////////////////////// +    if (0) { +        printf("Ich werde nie ausgeführt."); +    } +    else if (0){ +        printf("Ich werde auch nie ausgeführt."); +    } +    else { +        printf("Ich gebe etwas aus."); +    } + +    // While-Schleifen existieren auch +    int ii = 0; +    while (ii < 10){ // JEDER Wert unter zehn ist wahr +        printf("%d, " ii++); //i++ inkrementiert ii NACHDEM der Wert gebraucht wurde. +    } // => gibt folgendes aus: "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, " + +    printf("\n"); + +    int kk = 0; +    do { +        printf("%d, ", kk); +    } while(++kk < 10); //++kk inkrementiert kk BEVOR der Wert gebraucht wurde. +    // => gibt folgendes aus: "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, " + +    printf("\n"); + +    // In C gibt es auch for-Schleifen +    int jj;  +    for (jj = 0; jj < 10; jj++){ +        printf("%d, ", jj); +    } // => gibt folgendes aus: "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, " +     +    printf("\n"); + +    // **Merke** +    // Schleifen und Funktionen müssen einen Body haben. Wenn kein Body gebraucht +    // wird, kann folgendes gemacht werden: +    int i;  +    for (i = 0; i <= 5; i++){ +        ; // Semikolon wird als Body behandelt (Null-Anweisung) +    } +    // Alternativ kann auch folgendes geschrieben werden: +    for (i = 0; i <= 5; i++); + +    // Verzweigungen mit mehreren Möglichkeiten: `switch()` +    switch (a){ +        case 0: //labels müssen integrale *konstante* Ausdrücke sein (z.B. Enums) +            printf("Hey, 'a' ist gleich 0!\n"); +            break; //Wenn du kein break einsetzt, so geht der Kontrollfluss durch die Labels +        case 1: +            printf("Huh, 'a' ist gleich 1!\n"); +            break; +            // Sei vorsichtig - wenn man das `break` vergisst, werden alle Anweisungen +            // ausgeführt bis das nächste `break` erscheint. +        case 3: +        case 4: +            printf("Schau mal ... 'a' ist entweder 3 oder 4.\n"); +            break; +        default: +            // wenn der Ausdruck `a` auf kein Label zutrifft. +            fputs("Fehler!\n", stderr); +            exit(-1); +            break; +    } + +    // Verwendung von "goto" in C +    typedef enum { false, true } bool; +    bool desaster = false; +    int i, j;  +    for(i=0; i < 100; ++i){ +        for (j=0; j < 100; ++j){ +            if ((i + j ) >= 150){ +                desaster = true; +            } +            if (desaster){ +                goto error; +            } +        } +    } +error: +    printf("Ein Fehler ist aufgetreten bei i = %d & j ? %d\n", i, j); +  } | 
