====== Bedingungen in C formulieren ====== Kommen wir nochmal zu Basic: IF A=7 THEN PRINT "A ist 7" würde in C heißen: if(a==7) printf("a ist 7\n"); Der Vergleichsoperator ist nicht '=' sondern '=='! Welche Operatoren gibt es? ^C ^ Basic ^ Bedeutung ^ | == | = | ist gleich (gilt nicht für Strings!) | | != |  <> | ist ungleich | | > | > | ist größer | | < | < | ist kleiner | | >= |  >= | ist größer oder gleich | |  <= |  <= | ist kleiner oder gleich | Macht man eine Aussage wie ''a==7'' ist diese entweder richtig oder falsch. Ist Sie richtig, also a ist gleich ''7'', wird der Befehl oder das Befehlspaket nach der ''if''-Anweisung ausgeführt. Danach läuft das Programm normal weiter. int main(void) { long a=7; printf("Hallo\n"); if(a==7) printf("a ist 7\n"); printf("Nochmal Hallo\n"); return 0; } Auf dem Bildschirm würde also Hallo a ist 7 Nochmal Hallo erscheinen. Wird die Zeile long a=7; in long a=8; geändert, erscheint wenn man das Programm kompiliert hat und startet nur noch Hallo Nochmal Hallo weil die Variable a nun nicht mehr den geforderten Wert ''7'' besitzt. Das printf hinter dem if() wird nur ausgeführt, wenn die in den runden Klammen geschriebene Bedingung erfüllt ist. Hier besitzt a den Wert 8 und nicht den geforderten Wert 7, die Anweisung hinter if() wird daher nicht ausgeführt. Man kann das Programm nun 'erweitern'. Zum Beispiel so: int main(void) { long a = 8; printf("Hallo\n"); if( a == 7 ) printf("a ist 7\n"); if( a != 7 ) { printf( "a ist ungleich 7\n" ); printf( "Schade eigentlich...\n" ); } printf( "Nochmal Hallo\n" ); return 0; } Einfacher, schneller (weil nur ein Vergleich durchgeführt wird) und viel elegenter ist folgendes: int main(void) { long a = 8; printf( "Hallo\n" ); if( a == 7 ) printf( "a ist 7\n" ); else { printf( "a ist ungleich 7\n" ); printf( "Schade eigentlich...\n" ); } printf( "Nochmal Hallo\n" ); return 0; } Die Befehle, die nach dem Befehl ''else'' (zu deutsch "sonst") eingeklammert sind, werden ausgeführt, wenn die Bedingung der vorherigen ''if''-Anweisung nicht erfüllt wurde: Wenn ''a'' gleich ''7'', dann ''printf("a ist 7\n")'', sonst ''printf("a ist ungleich 7\n")'' Man kann diese beiden Befehle auch kombinieren. Zum Beispiel so: int main(void) { long a = 8; printf( "Hallo\n" ); if( a == 7 ) printf( "a ist 7\n" ); else if (a == 8) printf ("a ist 8\n"); else { printf( "a ist ungleich 7 und ungleich 8\n" ); printf( "Schade eigentlich...\n" ); } printf( "Nochmal Hallo\n" ); return 0; } Hier wird zuerst geprüft, ob a den Wert 7 hat. Ist dies nicht der Fall, wird auf 8 geprüft. Ist a auch nicht 8, wird der else Zweig ausgeführt.