Bedingungen - oder Entscheidungen - im Programm werden zum Beispiel mit if gemacht.
Das erste Beispielprogramm auf dieser Unterseite ist nicht sehr gut, eher unvollständig; aber es zeigt doch auf einfache Weise, wie man if-Bedingungen verwendet.
/* adve.c */
#include <stdio.h>/* printf */
#include <conio.h> /* getch, getche */
#include <stdlib.h> /* exit */
int main()
{
char dir = 'a';
int x = 10;
int y = 10;
while (dir != '\r')
{
printf("\nDeine Position ist %d %d", x, y);
printf("\nDruecke 2, 4, 6 oder 8 auf dem Zehnerblock: ");
dir = getche();
switch (dir)
{
case '2': y--; break;
case '4': x--; break;
case '6': x++; break;
case '8': y++;
}/*switch*/
if (x==7 && y==11)
{
printf("\nDu hast den SCHATZ!!!!");
exit(0);
}/* if */
}/* while */
}/* main() */
In diesem Programm steht das Code-Fragment:
if (x==7 && y==11)
{
printf("\nDu hast den SCHATZ!!!!");
exit(0);
}/* if */
Wenn im Block unter dem "if" nur eine Anweisung steht, dann kann man die geschweiften Klammern auch weglassen. Also so:
if (x==7 && y==11)
printf("\nDu hast den SCHATZ!!!!");
/* prim.c */
/* Primzahlen-Tester */
#include <stdio.h>/* printf */
#include <stdlib.h>/* exit */
int main()
{
long n;
long j;
do
{
printf("Geben Sie eine Zahl von 2 bis 444444444 ein: ");
scanf("%li", &n);
} while (n<2 || n>444444444); /* do-while */
for (j=2; j < n/2; j++)
if (n % j == 0)
{
printf("Keine Primzahl. Teilbar durch
%li\n", j);
exit(0);
}//if
printf("Ja, %li ist Primzahl.\n", n);
return 0;
}//main
Zum if gesellt sich manchmal noch ein else.
Solch ein if-else-Beispiel folgt hier.
/* ifelseif.c */
#include <stdio.h>//printf, scanf
#include <conio.h>//getch
int main()
{
int nummer1 = 1;
int nummer2 = 10;
if (nummer1 < nummer2)
printf("%d ist kleiner als %d", nummer1, nummer2);
else if (nummer1 > nummer2)
printf("%d ist groesser als %d", nummer1, nummer2);
else
printf("%d ist gleich gross wie %d", nummer1, nummer2);
getch();
return 0;
}//main()
Man betrachte jetzt einmal das Stück:
else
printf("%d ist gleich gross wie %d", nummer1, nummer2);
Weil hier nur eine einzige Anweisung steht unter dem "else", kannst Du die geschweiften Klammern weglassen.
Das nächste Video ist ein Beispiel für die Verwendung von switch-case. Die switch-Konstruktion funktioniert ähnlich wie das if. Sie ist eine "Mehrfachauswahl".
Das nächste Programm verwendet den besonderen Entscheidungsoperator, der etwas komplizierter als if-else ist. Dieser wird gebildet aus ? und : (Fragezeichen und Doppelpunkt).
/* entsch.c */
#include <stdio.h>
#include <conio.h>
int main()
{
int alter;
printf("Bitte Ihr Alter in Jahren tippen: ");
scanf("%d", &alter);
char* volljaehrigOderNicht;
volljaehrigOderNicht = (alter>17)?"volljaehrig.":"zu jung.";
printf("\nSie sind %s", volljaehrigOderNicht);
getch();
return 0;
}/* main */
Eine Überlegung wert: Wie bearbeitet der Compiler diese Zeile:
volljaehrigOderNicht = (alter>17)?"volljaehrig":"zu jung"; ???
Er überschlägt sozusagen die Variable links vom "Gleichheitszeichen" (hier besser: Zuweisungszeichen). Er wertet zuerst den ganzen Teil rechts vom = aus. Also diesen Teil: (alter>17)?"...":"..." - und stellt fest, dass es eine Bedingung ist.
Wir könnten auch schreiben:
if (alter > 17)
printf("\nSie sind volljaehrig.");
else
printf("\nSie sind zu jung.");
Oder:
char* volljaehrigOderNicht;
if (alter > 17)
volljaehrigOderNicht = "volljaehrig";
else
volljaehrigOderNicht = "zu jung";
printf("\nSie sind %s", volljaehrigOderNicht);
//ratec2.c
//24. 5. 2016
#include <conio.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <stdbool.h>
const int MAX = 1000;
int main()
{
printf("Bis %d kannst du raten.\n", MAX);
srand(time(NULL));
int geheim = rand()%MAX + 1;
bool weiter = true;
int eingabe, anzahlVersuche;
for (anzahlVersuche=0; weiter; anzahlVersuche++)
{
printf(" Deine Eingabe: ");
scanf("%d", &eingabe);
if (eingabe==geheim)
{
printf("Du hast gut geraten!");
weiter = false;
}
else if (eingabe < geheim) printf("Mach die Zahl groesser.");
else printf("Mach die Zahl kleiner.");
}
printf("\nDu hast %d Eingaben gemacht.", anzahlVersuche);
getch();
return 0;
}
Diese Webseite wurde mit Jimdo erstellt! Jetzt kostenlos registrieren auf https://de.jimdo.com