Um den Kontrollfluss eines Programmes zu kontrollieren (wir wollen ja nicht immer das selbe machen, je nachdem was der User eingibt soll das Programm darauf reagieren können (interaktiv) sein) braucht man Bedingungen die entweder wahr (true) oder falsch (false) sein können. Je nachdem ob eine Bedingung true oder false ist, wird eine andere Aktion (oder mehrere) ausgeführt.
if ist das neue Schlüsselwort. Generell gilt:

if(Bedingung)
{
wenn Bedingung wahr ist,
dann wird das hier gemacht.
wenn sie nicht wahr ist,
wird das hier nicht ausgeführt.
}
hier geht es weiter, egal ob die Bedingung wahr oder falsch war.
Hier kommt wieder ein Anweisungsblock vor. Wie wir schon wissen fasst ein Anweisungsblock Anweisungen zusammen. In unserem Fall zeigen wir durch den Anweisungsblock dem Compiler welchen Coder er ausführen muss, wenn die Bedingung war ist. Dieser Anweisungsblock kann natürlich auch wieder ein if (bzw. andere Anweisungsblöcke) beinhalten (alles beginnt von vorne).
Das verwenden wir gleich in einem Beispiel:
#include <iostream>
using namespace std;
int main()
{
cout<<"Bitte geben Sie eine Zahl ein\n";
int a;
cin>>a;
cout<<"Bitte geben Sie noch eine Zahl ein\n";
int b;
cin>>b;
if(a==b)
{
cout<<"Beide Zahlen sind gleich";
}
if(a<b)
{
cout<<a<<" ist kleiner als "<<b;
}
if(a>b)
{
cout<<a<<" ist größer als "<<b;
}
cout<<"\n";
}Wichtig ist, dass man die { und } nicht vergisst. Denn man muss dem Compiler ja sagen was er alles machen soll, wenn die Bedingung wahr ist. Sollte nur eine Anweisung ausgeführt werden (so wie in unserem Beispiel), dann kann man die Klammern weglassen. Ich empfehle aber, sie trotzdem immer zu schreiben.
Interessant dürfte sein, dass es ergänzend zu dem Wenn (if) auch ein Andernfalls (else) gibt:
#include <iostream>
using namespace std;
int main()
{
cout<<"Bitte geben Sie eine Zahl ein\n";
int a;
cin>>a;
cout<<"Bitte geben Sie noch eine Zahl ein\n";
int b;
cin>>b;
if(a==b)
{
cout<<"Beide Zahlen sind gleich";
}
else if(a<b)
{
cout<<a<<" ist kleiner als "<<b;
}
else
{
cout<<a<<" ist größer als "<<b;
}
cout<<"\n";
}Statt
if(bla)
{
//...
}
else
{
if(blu)
{
//...
}
}kann man auch
if(bla)
{
//...
}
else if(blu)
{
//...
}schreiben. Die 2. Variante ist die Üblichere! Folgende Vergleichsoperatoren gibt es:
| Operator | Wirkung |
|---|---|
| > | größer als |
| >= | größergleich |
| == | gleich |
| != | ungleich |
| < | kleiner als |
| <= | kleinergleich |
Weiters gibt es auch logische Verknüpfungen -> if(a>b && b>c), das liest sich wie: "Wenn a größer b und b größer c".
&& bedeutet UND während || ODER bedeutet. Man sollte diese Verknüpfungen aber nicht zu exzessiv verwenden, da der Code dadurch viel zu leicht unleserlich werden kann.
Bei ungleich (!=) haben wir ! bereits kennengelernt. ! heisst NOT, also nicht. Es dreht also den Wahrheitswert um.
#include<iostream>
using namespace std;
int main()
{
if(1==1 && 2==2)
{
cout<<"1 ist gleich 1 und 2 ist gleich 2\n";
}
if(3==3 || 3==4)
{
cout<<"Entweder ist 3 gleich 3 oder 3 ist gleich 4 oder beides ist wahr\n";
}
if(!(3==2))
{
cout<<"3 ist gleich 2 ist nicht wahr. Das bedeutet, dass 3 ungleich 2 ist.\n";
}
}