next up previous contents
Next: Ternärer ?:-Operator Up: Kontrollstrukturen Previous: Kontrollstrukturen

if-Anweisung

Die if-Anweisung dient dazu, bestimmte Programmteile nur unter bestimmten Bedingungen zu durchlaufen. Eine solche Anweisung kann, muß aber keinen else-Teil enthalten, der durchlaufen wird, wenn der Bedingungsteil false ist. Der else Teil kann aus beliebig vielen else if und einem else bestehen. Sowohl if, else if, als auch else-Zweige können entweder einzelne Anweisungszeilen (abgeschlossen durch Semikolon) oder in Klammerpaare {} gesetzte Anweisungsblöcke sein. Ein else-Block bezieht sich immer auf die gerade vorstehende, aktuelle if-Anweisung. Im folgenden Beispiel ist die zweite if-Anweisung ein einzelnes Statement im else-Teil der ersten.

#include<iostream>
using std::cout;
#include<cmath>
// ...

  // solution of quadratic equations  x^2 + p x + q = 0

  double p= 2., q= 3.;            // or other values
  double sol1, sol2;
  double root_arg = 0.25*p*p - q; // calculate the argument for the root

  if ( root_arg > 0. ) { // begin of if-block
    sol1 = 0.5*p + sqrt(root_arg);
    sol2 = 0.5*p - sqrt(root_arg);
  }                               // end if-block
  else if ( root_arg < 0. )       // 'error' condition, 'else' part    
    cout << "no real solution exists";
  else                            // refers to last if(root_arg < 0.)
    sol1 = sol2 = 0.5 * p;        // assignment from right to left
 
  if ( sol1 > 0. ) 
    cout << "graph cuts positive x-axis";
                                  // ok, else branch missing



© R.Hilfer et al., ICA-1, Univ. Stuttgart
28.6.2002