Frage zu Source Code



  • Wer kann mir erklären wofür ganz genau dieses for(int i=0;i<b;i=i+1) steht

    Hier in dem Schornboeck Tutorial (http://tutorial.schornboeck.net/schleifen.htm)
    wird es leider nicht vernünftig erklärt

    #include<iostream>
      using namespace std;
    
      int main()
      {
        int a;
        int b;
        int erg=1;
        cout<<"Geben sie eine Zahl ein: ";
        cin>>a;
        cout<<"Und jetzt eine andere: ";
        cin>>b;
    
        for(int i=0;i<b;i=i+1)
        {
          erg=erg*a;
        }
    
        cout<<a<<" hoch "<<b<<" ist "<<erg<<"\n";
        cin.get();
      }
    


  • also wenn du schon an einer einfachen for()-Schleife scheiterst, hast du den falschen Beruf gewählt 😉

    in den Klammern des for() stehen drei Anweisungen, die die Schleife steuern - Initialisierung ( int i=0 - wird vor dem Beginn der Schleife ausgeführt), Abbruchbedingung ( i<b - wird vor jedem Durchlauf ausgewertet, bei false endet die Schleife) und Schritt ( i=i+1; - wird am Schleifenende ausgeführt (und aktualisiert meistens die Zählvariable)).

    PS: Alle drei Teile können auch wegfallen - nur die Semikolons werden benötigt.



  • lol warum scheitern wenn es nirgendwo erklärt steht 😡



  • hab da mal einen sehr sinnigen toilettenspruch (!) gesehn:

    #define ever (;;)
    
    for ever {
      work();
    }
    

    @topic: wenn du meinst, dass es nicht vernuenftig erklaert wird, dann hast du es entweder nicht vernuenftig gelesen oder du solltest dir ein anderes Hobby als Programmieren suchen - es ist naemlich unter deinem Link direkt hinter dem Quelltextbeispiel ausreichend ausfuehrlich erklaert.



  • Bass schrieb:

    lol warum scheitern wenn es nirgendwo erklärt steht 😡

    Tja - wlkikiv 🙄 direkt unter dem von dir geposteten Beispieltext steht die dazugehörige Erklärung.

    (hab extra nochmal in deinem Link nachgeguckt, weil ich nicht glauben konnte, daß irgendwer eine for-Schleife ohne Erläuterungen in den Raum werfen würde)



  • Ja ok da steht es erklärt aber es steht dort nicht warum es so ist ^^

    z.b. warum nicht

    for(int i=1;i<b;i=i+1)
    

    oder so jetzt könnte man sagen als antwort weil es dann falsch ist ^^ Aber das wäre eine dumme antwort.



  • Das ist eine Angewohnheit von C, die viele Nachfolgersprachen übernommen haben - die Zählung beginnt bei 0.
    (obwohl es auch Leute geben soll, die for(i=1;i<=b;++i) schreiben würden (die Wirkung ist hier die selbe) - bei deiner "Alternative" hast du einen Schleifendurchlauf zu wenig)



  • Jetzt weiss ich was ich da falsch verstanden habe 😃

    for(int i=0;i<b;i=i+1)
    
    würde man als erste zahl eine 2 eingeben und als zweite zahl auch eine 2
    
    dann würde das programm rechnen 2*2 aber würde dort stehen:
    
    for(int i=-1;i<b;i=i+1)
    
    und wenn man dann wieder als erste zahl eine 2 eingeben würde und als 2te Zahl auch eine 2 dann würde das programm rechnen 2*2*2
    

    Jetzt hab ichs verstanden thx


Anmelden zum Antworten