if .. else Anweisung


Die if .. else Anweisung beschreibt eine vollständige Alternative. Die Syntax ist:

	if ( Ausdruck )	
           Anweisung1;
        [else
           Anweisung2;]

Der else Teil kann entfallen, man erhält dann eine bedingte Anweisung. Wenn  'Ausdruck'  wahr ist (d.h. Wert ungleich Null ) wird 'Anweisung1' abgearbeitet. Gibt es eine else Anweisung, wird  'Anweisung2' abgearbeitet, wenn 'Ausdruck' gleich Null ist

(1)
	int NumberOfUsers;
	.
	.
	if( NumberOfUsers == 25 )
        {			/* kein else Teil */
	  printf( "There are already enough users. Try later.\n" );
	  return ERROR;
        }
	.
	.


(2)	if( a >=b )     /* vollständige Alternative */
           larger = a;  
        else 
           larger = b; 

Sehen Sie sich dieses Programmfragment an:

	if( p == 1 )
	  if( q == 2 )	r = p * 2 + q;
        else q = q * 2 + p;

Da der else Teil entfallen kann, wäre diese Anweisung mehrdeutig (gehört das else zum ersten oder zum zweiten if?). In C gilt deshalb, daß eine else Anweisung immer zur nächsten if Anweisung gehört.  Im Beispiel gehört der else Teil deshalb zu  'if (q==2)'. Der Quellcode wird besser lesbar, wenn man  Klammern setzt.

	if( p == 1 )
        {
	  if( q == 2 )	r = p * 2 + q;
	  else r = q * 2 + p;
        }

Mit Klammern kann man auch eine andere Interpretation festlegen.

        
        /* hier gehört else Teil zu (p == 1) */
        if( p == 1) {
	  if( q == 2 )	r = p * 2 + q;
        }
	else r = q * 2 + p;

Alternativen kann man beliebig verschachteln, eine Mehrfachauswahl sieht in C so aus:

	if( Ausdruck1 )
	  Anweisung1;
        else if( Ausdruck2 )
	  Anweisung2;
	else if( Ausdruck3 )
	  Anweisung3;
	.
	.
	else
	  AnweisungN;

Beispiel:

Programmbeispiel


Siehe auch:


Anfang Hauptindex Schlüsselwörter Funktionen

Übers.: G. Junghanns