geschachtelte if / else Anweisungen

Um Bedingungen abzufragen kann man auch geschachtelte if / else Anweisungen verwenden.

 

Hier ein Programm, welches gemessene Spannungswerte abfragt.

Wichtig ist, die Anweisungen immer von der Mitte heraus zu lesen.

float u;

Console.WriteLine(„Wie groß ist die gemessene Spannung?“);
u = Convert.ToSingle(Console.ReadLine());

if (u > 2)
  if (u > 20)
    if (u > 100)
      Console.WriteLine(„zu groß“);
    else
    Console.WriteLine(„maximal“);
  else
  Console.WriteLine(„mittel“);
else
Console.WriteLine(„minimum“);

Console.ReadLine();

 


Stellen Sie sich vor, Sie möchten einen Anweisungsblock nur dann ausführen, wenn nicht eine, sondern zwei Bedingungen erfüllt sein müssen.

Beispiel:

string Name, Passwort;
Console.WriteLine(„Bitte geben Sie Ihren Namen ein: „);
Name = Console.ReadLine();

if (Name == „Bill Gates“)
{
  Console.WriteLine(„Bitte geben Sie Ihr Passwort ein: „);
  Passwort = Console.ReadLine();

  if (Passwort == „Microsoft“)
  { 
    Console.WriteLine(„Sie müssen wirklich Bill Gates sein!“);
  }
  else
  {
    Console.WriteLine(„Sie sind nicht Bill Gates!“);
  }
}

Console.WriteLine(„Hallo, „ + Name);
Console.ReadLine();

 

Das Programm fragt neben dem Namen auch noch nach einem Passwort.

Angenommen, der Benutzer gibt nicht Bill Gates ein, dann wird er vom Programm einfach nur mit einem simplen Hallo begrüßt.

Gibt er aber Bill Gates ein, so möchte das Programm auch noch ein Passwort wissen.

Ist das Passwort richtig, so wird der Benutzer als Bill Gates erkannt, ist es aber falsch, so hat er sich entweder vertippt oder er ist nicht Bill Gates.

 

Wenn Sie noch mehr als zwei Bedingungen testen wollen, werden geschachtelte if-Anweisungen schnell unübersichtlich. Dieses Problem können Sie mit den logischen Operatoren umgehen. Die beiden if-Anweisungen

if (Name == „Bill Gates“)
{
  if (Passwort == „Microsoft“)
  { 
    Console.WriteLine(„Sie müssen wirklich Bill Gates sein!“);
  }
}

 

können Sie nämlich zu einer zusammen fassen, denn die Zeile

Console.WriteLine(„Sie müssen wirklich Bill Gates sein!“);

soll nur ausgeführt werden, wenn der Name und das Passwort richtig sind. Also schreiben Sie statt der verschachtelten if-Anweisungen

if (Name == „Bill Gates“ && Passwort == „Microsoft“);

und fragen so beide Bedingungen in einer Zeile ab.