C Verzweigungen und Logische Operatoren
Im
Folgenden lernen wir einen Mechanismus kennen mit Bedingungen umzugehen. Das
folgende Programm berechnet anhand von Umsatz und Kosten die Einnahmen und gibt
unterschiedliche Nachrichten aus, je nachdem ob Gewinn oder Verlust gemacht
wurde:
#include <stdio.h>
int main(void)
{
double revenue; // umsatz
double cost; // kosten
printf("Geben Sie den Umsatz an:\n");
scanf("%lf", &revenue);
printf("Geben Sie die Kosten an:\n");
scanf("%lf", &cost);
double profit = revenue - cost; // profit
if(profit > 0)
{
printf("YAY Profit");
}
else if (profit == 0)
{
printf("-.-");
}
else
{
printf("500 € Ausgaben für Designer Schuhe?!");
}
getchar();
return 0;
}
Nur wenn die Bedingung if(earnings > 0) erfüllt ist, werden die Befehle im
if-Block ausgeführt. Optional kann man auch den Gegenfall betrachten, indem man
else anfügt, mit else if kann
dieser genauer verfeinert werden.
Ausgabe if(profit > 0) |
Wird nach der if-Bedingung
nur ein einziger Befehl ausgeführt, kann man die Klammern auch weglassen. Wir
hätten auch
if(profit > 0)
printf("YAY Profit");
else if (profit == 0)
printf("-.-");
else
printf("500 € Ausgaben für Designer Schuhe?!");
oder
if(profit > 0) printf("YAY Profit");
else if (profit == 0) printf("-.-");
else printf("500 €
Ausgaben für Designer Schuhe?!");
schreiben können.
Bedingungen lassen sich über Logische Operatoren wie ‚und‘, ‚oder‘,
‚nicht‘, ‚entweder oder‘ verknüpfen:
if(0 < a &&
a < 10) // 0 < a und a < 10
if(0 <= a || a < 10) // 0 <= a oder a < 10
if(0 < a ^ a
< 10) // entweder 0 < a oder a < 10
if(!(0 == a)) // nicht (0 = a)
Ähnlich zu der if-Bedingung gibt es switch cases, also
Fallunterscheidungen:
#include <stdio.h>
int main(void)
{
int n;
printf("Gib eine Zahl ein:\n");
scanf("%d", &n);
switch (n)
{
case 0:
printf("n ist null");
break;
case 1:
printf("n ist eins");
case 2:
printf(" ... oder zwei ");
case 3:
printf(" ... oder drei ");
break;
default:
printf("n ist irgendetwas
anderes");
break;
}
getchar();
return 0;
}
Falltrough bei switch-cases |
Mit switch (n) wird die Variable
angegeben, zwischen deren Werte unterschieden werden soll. Hinter dem Wort case wird der Fall definiert, der betrachtet
werden soll. Lassen wir break
weg, wird der nächste Fall ebenfalls betrachtet. Unter default werden alle Fälle abgedeckt, die nicht explizit
angegeben wurden.
Keine Kommentare:
Kommentar veröffentlichen