wie funzt es ?



  • hi,
    also ich habe mal ne frage zu folgenden source :

    #include <iostream>
    #include <iomanip>
    using namespace std;

    int main()
    {
    //Variabeln
    long euro, max_euro = 0;
    double kurs;

    //Ausgabe und Eingabe des Kruses
    cout << "\n* * * KURSTABELLE Euro - US Dollar * * *\n\n";
    cout << "\nBitte den Preis von einem Euro in US Dollar eingebe : ";
    cin >> kurs;
    cout << "\nBitte die Obergrenze angeben : ";
    cin >> max_euro;

    //Tabelle . . .
    cout << '\n' << setw(12) << "EURO" << setw(20) << "US Dollar" <<"\t\tKurs : " << kurs << endl;

    //Einstellungen . . .
    cout << fixed << setprecision(2) <<endl;

    long lower, upper, step;

    //Lower wird einmal mit 1 angegeben so auch step. Diese schleife wird so
    //lang durchgeführt bis, lower grösser als max_euro ist!
    //Nachdem die Schleife einmal drchgelaufen ist wird, step * 10 gerechnet
    //und lower bekommt den Wert 2 * step!
    for(lower = 1, step = 1; lower <= max_euro; step *= 10, lower = 2 * step)
    {
    cout << "\n SCHLEIFE 1 \n";
    //Euro wird erstmal mit dem Wert von lower belegt und upper bekommt den wert step * 10!
    //Die schleife wird solange durchgeführt bis euro grösser als upper ist und euro grösser
    //als max_euro ist, Nachdem die Schleife einmal abgearbeitet wurde wird euro + step
    //Plus gerechnet!
    for(euro = lower, upper = step * 10; euro <= upper && euro <= max_euro; euro += step)
    {
    cout << "\n SCHLEIFE 2 \n";
    cout << setw(12) << euro << setw(20) << euro * kurs << endl;
    }
    }

    cin.sync();
    cin.clear();
    cin.get();
    }

    ich habe dieses beispiel aus meinem buch und nun habe ich die messages SCHLEIFE 1 und SCHLEIFE 2 eingefügt um zu gucken wie oft, das prog die scheifen beutzt,
    aber die SCHLEIFE 1 wird nur einmal durchlauen ist sie dann net unwichtig ? könnte mir einer das programm erklären...thx!



  • Hallo!

    Lies Dir mal duch wie ne for-Schleife funktioniert, falls Du das noch nicht *genau* weißt.
    Dann betrachte folgenden Schleifenkopf aus Deinem Code:

    for(lower = 1, step = 1; lower <= max_euro; step *= 10, lower = 2 * step)
    

    Da steckt die Bedingung: lower <= max_euro drin.
    Es hängt also von der Eingabe für max_euro ab, wie oft die Schleife läuft. Gibt dafür mal 1000 oder so ein, dann müßte die Schleife auch öfter laufen.

    MfG Jester


Anmelden zum Antworten