C-Tutorials.de Logo

zum Inhaltsverzeichnis

C Tutorial: Die Einfachverzweigung (if-else) und Vergleichsoperatoren


Die Einfachverzweigung: if-else

Zuerst einmal die Verzweigung in Worten beschrieben: WENN etwas ist, DANN mach etwas, WENN NICHT dann mach etwas anderes. Eigentlich nicht schwer oder? Darum hier gleich der Syntax inklusive Beschreibung mithilfe von Kommentaren:

if(abc == 1) //WENN die Variable abc den Wert 1 hat
  {
    //DANN führe diesen Teil vom if aus
  }
else
  {
    //WENN NICHT, dann führe den else Teil aus
    }

Das heißt also, eine if-else Verzeigung überprüft eine (oder mehrere) Variable(n) auf einen vorgegebenen Inhalt. Ist diese sog. Bedingung wahr (true), dann wird der obere Teil ausgeführt. Ist sie nicht wahr (false), dann wird der untere Teil ausgeführt. Die Bedingung, die es zu überprüfen gilt, steht immer nach dem 'if' in den beiden Klammern '(Bedingung)'.
Die jeweiligen Codeteile werden immer noch von 2 geschweiften Klammern eingerahm '{ }'.

Eine Bedingung ist immer gleich aufgebaut: [Variable] [Vergleichsoperator] [Variable 2 oder fester Wert]
Hier eine Liste der verschiedenen Vergleichsoperatoren:

Achtung: Du darfst niemals den Zuweisungsoperator '=' mit dem Vergleichsoperator '==' verwechseln!

Der else Teil ist nicht unbedingt verpflichtend. Gibt es keinen Code, der ausgeführt werden soll, wenn die Bedingung nicht wahr ist, dann lässt man ihn einfach weg:

if(abc == 1) //WENN die Variable abc den Wert 1 hat
  {
    //DANN führe das hier aus, WENN NICHT mache nichts
  }

Aufgabe:

Deine Aufgabe soll es nun sein, das folgende Programm mit allen Vergleichsoperator(en) (nacheinander in verschiedenen Programmen) und einer if-else Verzweigung, so zu verändern, dass in der Ausgabe immer eine wahre Aussage steht. Bitte löse diese Aufgaben und schau erst nach wenn du es wenigstens versucht hast. Die Sache mit den Bedingungen ist eine der wichtigsten Dinge überhaupt! Beispiel:

#include <stdio.h>

int main ()
{
int abc;

  printf("Bitte gib eine Ganzzahl ein: ");
  scanf("%i",&abc);

  if(abc == 3)
    {
      printf("\nDie Zahl, die du eingegeben hast, war die 3."); //Bedingung ist wahr
    }
  else
    {
      printf("\nDie Zahl, die du eingegeben hast, war NICHT die 3."); //Bedingung ist falsch
    }

getch();
}

Hier die Lösungen für die anderen 5 Vergleichsoperatoren:
ist ungleich wie '!=':

#include <stdio.h>

int main ()
{
int abc;

  printf("Bitte gib eine Ganzzahl ein: ");
  scanf("%i",&abc);

  if(abc != 3)
    {
      printf("\nDie Zahl, die du eingegeben hast, war NICHT die 3.");
    }
  else
    {
      printf("\nDie Zahl, die du eingegeben hast, war die 3.");
    }

  getch();
}

Vielleicht hast du gemerkt, das von '==' nach '!=' einfach die WENN und WENN NICHT vertauscht werden.
ist kleiner oder gleich wie '<=':

#include <stdio.h>

int main ()
{
int abc;

  printf("Bitte gib eine Ganzzahl ein: ");
  scanf("%i",&abc);

  if(abc <= 3)
    {
      printf("\nDie Zahl, die du eingegeben hast, war kleiner oder gleich als 3.");
    }
  else
    {
      printf("\nDie Zahl, die du eingegeben hast, war groesser als 3.");
    }

  getch();
}

ist größer oder gleich wie '>=':

#include <stdio.h>

int main ()
{
int abc;

  printf("Bitte gib eine Ganzzahl ein: ");
  scanf("%i",&abc);

  if(abc >= 3)
    {
      printf("\nDie Zahl, die du eingegeben hast, war groesser oder gleich als 3.");
    }
  else
    {
      printf("\nDie Zahl, die du eingegeben hast, war kleiner als 3.");
    }

  getch();
}

ist kleiner wie '<':

Sicher hast du beim lösen der Aufgabe gemerkt, das in der Ausgabe immer steht die Zahl wäre 3 obwohl du gerade die 3 eingegeben hast. Jetzt sind wir an einem Punkt, an dem eine Verzweigung nicht ausreicht. Deshalb fügen wir wir einfach noch eine if-else in den else-Teil der Verzweigung ein:

#include <stdio.h>

int main ()
{
int abc;

  printf("Bitte gib eine Ganzzahl ein: ");
  scanf("%i",&abc);

  if(abc < 3)
    {
      printf("\nDie Zahl, die du eingegeben hast, kleiner als 3.");
    }
  else
    {
      if(abc == 3)
        {
          printf("\nDie Zahl, die du eingegeben hast, war die 3.");         }
      else
        {
          printf("\nDie Zahl, die du eingegeben hast, war groesser als 3.");
        }
    }

  getch();
}

ist größer wie '>':

#include <stdio.h>

int main ()
{
int abc;

  printf("Bitte gib eine Ganzzahl ein: ");
  scanf("%i",&abc);

  if(abc > 3)
    {
      printf("\nDie Zahl, die du eingegeben hast, groesser als 3.");
    }
  else
    {
      if(abc == 3)
        {
          printf("\nDie Zahl, die du eingegeben hast, war die 3.");
        }
      else
        {
          printf("\nDie Zahl, die du eingegeben hast, war kleiner als 3.");
        }
    }

  getch();
}

zum Inhaltsverzeichnis