Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C Bedingte Anweisungen meistern: IF, IF-ELSE und verschachtelte IF-ELSE erklärt

Was ist eine bedingte Anweisung in C?

Bedingte Anweisungen in C werden verwendet, um Entscheidungen basierend auf Bedingungen zu treffen. Ohne Bedingungen werden Anweisungen sequenziell ausgeführt. Wenn Sie eine Bedingung für einen Block von Anweisungen setzen, kann der Ausführungsfluss basierend auf dem Ergebnis der ausgewerteten Bedingung ändern. Dieser Prozess wird als Entscheidungsfindung in „C“ bezeichnet.

In der C-Programmierung sind bedingte Anweisungen mit den folgenden zwei Konstrukten möglich:

  1. If-Anweisung
  2. If-Else-Anweisung

Dies wird auch als Verzweigung (Branching) bezeichnet, da das Programm entscheidet, welche Anweisung basierend auf dem Ergebnis der ausgewerteten Bedingung ausgeführt wird.

In diesem Tutorial lernen Sie:

If-Anweisung

Eine der mächtigsten bedingten Anweisungen. Die If-Anweisung ist verantwortlich für die Änderung des Ausführungsflusses eines Programms. Sie wird immer mit einer Bedingung verwendet. Die Bedingung wird zuerst ausgewertet, bevor Anweisungen im If-Block ausgeführt werden. Die Syntax:

if (condition) instruction;

Die Bedingung ergibt entweder true (wahr) oder false (falsch). True ist immer ein Nicht-Null-Wert, false ist ein Wert, der Null enthält. Anweisungen können eine einzelne Instruktion oder ein Code-Block in geschweiften Klammern { } sein.

Das folgende Programm veranschaulicht die Verwendung des If-Konstrukts in C:

#include <stdio.h>
int main() {
    int num1 = 1;
    int num2 = 2;
    if (num1 < num2) // Test-Bedingung
    {
        printf("num1 is smaller than num2");
    }
    return 0;
}

Ausgabe:

num1 is smaller than num2
C Bedingte Anweisungen meistern: IF, IF-ELSE und verschachtelte IF-ELSE erklärt
  1. Im obigen Programm haben wir zwei Variablen num1, num2 mit den Werten 1, 2 initialisiert.
  2. Dann haben wir if mit einem Test-Ausdruck verwendet, um zu prüfen, welche Zahl kleiner und welche größer ist. Wir haben einen relationalen Ausdruck im if-Konstrukt verwendet. Da der Wert von num1 kleiner als num2 ist, wird die Bedingung zu true ausgewertet.
  3. Daher wird die Anweisung im If-Block ausgegeben. Danach geht die Kontrolle aus dem Block heraus und das Programm wird mit einem erfolgreichen Ergebnis beendet.

Relationale Operatoren

C hat sechs relationale Operatoren, die verwendet werden können, um einen booleschen Ausdruck für Entscheidungen und Bedingungsprüfungen zu formulieren, der true oder false zurückgibt:

Beachten Sie, dass der Gleichheitstest (==) sich vom Zuweisungsoperator (=) unterscheidet, da dies eines der häufigsten Probleme ist, auf die Programmierer stoßen, wenn sie sie verwechseln.

Beispiel:

int x = 41;
x = x + 1;
if (x == 42) {
    printf("You succeed!");
}

Ausgabe: You succeed

Beachten Sie, dass eine Bedingung, die zu einem Nicht-Null-Wert ausgewertet wird, als true betrachtet wird.

int present = 1;
if (present) printf("There is someone present in the classroom \n");

Ausgabe: There is someone present in the classroom

If-Else-Anweisung

C Bedingte Anweisungen meistern: IF, IF-ELSE und verschachtelte IF-ELSE erklärt

Die If-Else-Anweisung ist eine erweiterte Version von If. Die allgemeine Form:

if (test-expression) {
    // True-Block von Anweisungen
} else {
    // False-Block von Anweisungen
}
// Anweisungen nach dem If-Block

In diesem Konstrukt wird, wenn der Wert des Test-Ausdrucks true ist, der True-Block ausgeführt. Wenn false, der False-Block. In jedem Fall wird die Kontrolle nach der Ausführung automatisch zu den Anweisungen außerhalb des If-Blocks übertragen.

Beispiel – Initialisieren einer Variable und Prüfen, ob der Wert kleiner oder größer als 10 ist:

#include <stdio.h>
int main() {
    int num = 19;
    if (num < 10) {
        printf("The value is less than 10");
    } else {
        printf("The value is greater than 10");
    }
    return 0;
}

Ausgabe: The value is greater than 10

C Bedingte Anweisungen meistern: IF, IF-ELSE und verschachtelte IF-ELSE erklärt
  1. Variable mit Wert 19 initialisiert. Prüfen, ob die Zahl größer oder kleiner als 10 ist.
  2. Bedingung num < 10 bereitgestellt, da wir mit 10 vergleichen.
  3. Der erste Block ist immer der True-Block: wenn Test-Ausdruck true, wird If-Block ausgeführt.
  4. Der zweite Block ist der Else-Block: wird ausgeführt, wenn Test-Ausdruck false wird. Da num > 10, wird Else-Block ausgeführt: „The value is greater than 10“.

In C können wir mehrere If-Else-Konstrukte ineinander verschachteln, was als Nesting von If-Else-Anweisungen bezeichnet wird.

Bedingte Ausdrücke (Ternärer Operator)

Eine andere Art, If-Else auszudrücken, ist der ?: Operator. In einem bedingten Ausdruck hat der ?: Operator nur eine Anweisung für If und Else.

Beispiel:

#include <stdio.h>
int main() {
    int y;
    int x = 2;
    y = (x >= 6) ? 6 : x; /* Äquivalent zu: if (x >= 5) y = 5; else y = x; */
    printf("y =%d ", y);
    return 0;
}

Ausgabe: y =2

Verschachtelte If-Else-Anweisungen

Wenn eine Reihe von Entscheidungen erforderlich ist, wird verschachteltes If-Else verwendet. Nesting bedeutet, ein If-Else-Konstrukt innerhalb eines anderen zu verwenden.

Programm zur Veranschaulichung:

#include <stdio.h>
int main() {
    int num = 1;
    if (num < 10) {
        if (num == 1) {
            printf("The value is:%d\n", num);
        } else {
            printf("The value is greater than 1");
        }
    } else {
        printf("The value is greater than 10");
    }
    return 0;
}

Ausgabe: The value is:1

C Bedingte Anweisungen meistern: IF, IF-ELSE und verschachtelte IF-ELSE erklärt
  1. Variable num mit Wert 1 deklariert. Then If-Else-Konstrukt verwendet.
  2. Im äußeren If-Else prüft die Bedingung, ob Zahl < 10. Wenn true, wird innerer Block ausgeführt. Hier ist Bedingung true.
  3. Im inneren Block prüft eine weitere Bedingung, ob Variable Wert 1 enthält. Wenn true, If-Block, sonst Else-Block. Hier true, Wert wird ausgegeben.
  4. Programm gibt Variablenwert aus und beendet sich erfolgreich.

Probieren Sie, den Wert der Variable zu ändern, und beobachten Sie das Verhalten.

HINWEIS: Bei verschachtelten If-Else-Konstrukten muss man auf Einrückung achten, da mehrere If-Else involviert sind und es schwierig wird, einzelne Konstrukte zu identifizieren. Korrekte Einrückung macht das Programm lesbar.

Verschachtelte Else-If-Anweisungen (Else-If-Leiter)

Verschachteltes Else-If wird verwendet, wenn Mehrwege-Entscheidungen erforderlich sind.

Die allgemeine Syntax für Else-If-Leitern in C:

if (test-expression 1) {
    statement1;
} else if (test-expression 2) {
    statement2;
} else if (test-expression 3) {
    statement3;
} else if (test-expression n) {
    statement n;
} else {
    default;
}
statement x;

Diese Struktur nennt man Else-If-Leiter. Die Test-Ausdrücke werden von oben nach unten ausgewertet. Sobald ein true Test-Ausdruck gefunden wird, wird die zugehörige Anweisung ausgeführt. Wenn alle n Test-Ausdrücke false werden, wird der Standard-Else-Block ausgeführt.

Beispiel – Notenbewertung:

#include <stdio.h>
int main() {
    int marks = 83;
    if (marks > 75) {
        printf("First class");
    } else if (marks > 65) {
        printf("Second class");
    } else if (marks > 55) {
        printf("Third class");
    } else {
        printf("Fourth class");
    }
    return 0;
}

Ausgabe: First class

C Bedingte Anweisungen meistern: IF, IF-ELSE und verschachtelte IF-ELSE erklärt
  1. Variable marks initialisiert. Im Else-If-Leiter verschiedene Bedingungen bereitgestellt.
  2. Wert von marks wird mit erster Bedingung verglichen; da true, wird zugehörige Anweisung ausgegeben.
  3. Falls erste Bedingung false, Vergleich mit zweiter Bedingung.
  4. Prozess geht so lange, bis alle Ausdrücke ausgewertet sind, sonst geht Kontrolle aus Leiter raus und Default wird ausgegeben.

Versuchen Sie, den Wert zu ändern und die Ausgabeänderung zu beobachten.

Zusammenfassung

C Sprache

  1. C# Ausdrücke, Anweisungen & Blöcke: Umfassender Leitfaden mit Beispielen
  2. Bedingte Logik in C# meistern: If, If-Else, If-ElseIf und verschachtelte If-Anweisungen
  3. C++-Bedingungsanweisungen meistern: if, if...else und verschachteltes if...else erklärt
  4. C Bedingte Anweisungen meistern: If, Else und mehr
  5. Java if…else meistern: Kontrollfluss erklärt
  6. C++ Operatoren erklärt: Typen, Beispiele und Beispielprogramme
  7. C++ switch‑case meistern: Syntax, Einsatz und Praxisbeispiele
  8. C++ Structs erklärt mit praktischem Beispiel
  9. std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele
  10. C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle