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*2Jetzt hab ichs verstanden thx