Entscheidungen

if

Statt Entscheidung kannst Du auch Bedingung oder Verzweigung sagen. Aber Verzweigung nach if = Wenn ist hier gemeint. Der einfachste Fall ist, dass Du eine Programmzeile mit if hast wie diese:

if  (i < 100)  j = 0;

Damit ist gemeint: Wenn i kleiner als 100 ist, dann setze j gleich null.


Darf es etwas komplizierter sein? Dann lies weiter:

if (jahr % 400 == 0) wahrheit = true;

Wenn das "%" noch nicht bekannt ist, dann geht's hier weiter!

Das Programm hierzu:

//jahr.cpp

//Ermittlung des Schaltjahrs

#include <iostream> //cout, endl, <<

#include <conio.h> //getch()

using namespace std;

 

int main()

{

bool wahrheit;

int j;

cout << "Das Jahr (2015) eingeben: ";

cin >> j;

if (j % 400 == 0) wahrheit = true;

else if (j % 100 == 0) wahrheit = false;

else if (j % 4 == 0) wahrheit = true;

else wahrheit = false;

if (wahrheit == true)

cout <<endl<< j << " ist ein Schaltjahr.";

else cout <<endl<< j << " ist kein Schaltjahr.";

 

cout << endl << endl << "Taste bitte ...";

getch();

return 0;

}//Ende main()

Dieses obige Programm ermittelt jedes beliebige Schaltjahr, wenn es nicht gerade 9000000000 lautet.


Ein Programm: ratemal.cpp


Bedingung mit switch und case

//switch.cpp
#include <iostream>//cin, cout
using namespace std;

int main()
{
    int formel=0;
    cout << "Bitte tipp eine kleine Zahl ein! (1 bis 4): ";
    cin >> formel;
    switch (formel)
    {
        case 1: cout << endl << "Guten Morgen!";break;
        case 2: cout << endl << "Guten Tag!";break;
        case 3: cout << endl << "Guten Abend!";break;
        case 4: cout << endl << "Gute Nacht!";break;
        default: cout << endl << "Ich glaube, Du hast was Falsches eingetippt.";
    }//switch-case
    return 0;
}//main()


Ein Programm: buchstale.cpp

Ein etwas längeres Programm: datum.cpp

//datum.cpp
#include <iostream> //cout
#include <conio.h> //getch()
using namespace std;

int main()
{
int tag, monat, jahr, jh, ja, julian_tag;
do
{
cout << "Tag: "; cin >> tag;
} while (tag<1 || tag>31);
do
{
   cout << "Monat als Zahl: "; cin >> monat;
} while (monat<1 || monat >12);
cout << "Jahr: "; cin >> jahr;
cout << "Das Datum ist ein ";
jh = jahr / 100;
ja = jahr % 100;
if(monat>2)
{monat -= 3;
}
else
{
monat += 9;
ja--;
}
julian_tag = (146097*jh)/4 + (1461*ja)/4 + (153*monat+2)/5 + tag + 1721119;
switch
( julian_tag % 7)
{
case 0: cout << "Montag" <<endl; break;
case 1: cout << "Dienstag" <<endl; break;
case 2: cout << "Mittwoch"; break;
case 3: cout << "Donnerstag"; break;
case 4: cout << "Freitag"; break;
case 5: cout << "Samstag" <<endl; break;
case 6: cout << "Sonntag" <<endl; break;
default: cout << "Programminterner Fehler." << endl; break;
}//switch
getch();
return 0;
} //main()


Eine Besonderheit bei switch und case:

Sieh Dir die Videos an, bitte! Da erfährst Du, dass man switch-case sehr gut und flexibel anwenden kann. Man kann gut mehrere case-Abfragen hintereinander schreiben.


Für fortgeschrittene Mitdenker

Der "Ablaufplan" für switch und case: switch ( Bedingung ) { case const: stat ; break; }