Re: Problem mit for-Schleife Kategorie: Programmierung (von ToM - 24.02.2003 10:24) | |
Als Antwort auf Re: Problem mit for-Schleife von André H. - 24.02.2003 8:53
| |
Hallo André, vielen Dank für die schnelle Antwort. Ich denkt ich hab das mit der for Schleife jetzt begriffen, aber wo die 160 in der Variable Schleife herkommen ist mir immer noch unklar, denn ich dachte immer das nach einer Variablendeklaration int Variable; diese Variable mit 0 initialisiert wird und nicht mit einem "zufälligen" Wert. Aber wenn man weis das dies nicht so ist kann man's ja umgehen. mfg ToM > Hallo ToM, > > Das ist kein Problem, sondern ein Fehler im Syntax. > (Handbuch Seite 85 Bsp. rechts oben mit step -1) > > Und zwar mu� ein bei negeativem step immer ein Operator dabeistehen: > > for Schleife = Anzahl > > So kann man das viell. besser erkennen wie das for funzt: > > Schleife = 0 > while Schleife <= Anzahl > { > // Anweisungen > // ... > Schleife =Schleife +1 > } > Das wäre ein for umschrieben mit while. (for schleife=0 ... Anzahl) > > Bei der Forschleife mit step -1, wie Du es geschrieben hast, würde > das so aussehen: > Schleife = Anzahl > while Schleife <= 0 > { > // Anweisungen > // ... > Schleife =Schleife > } > > Hier kann man gut erkennen, was passiert. :-) > > Bei der korekten Schreibweise mit step -1 sieht das so aus: (for Schleife=Anzahl ... >= 0 step -1) > > Schleife = Anzahl > while Schleife >= 0 > { > // Anweisungen > // ... > Schleife =Schleife > } > > Ich hoffe das hilft Dir um zu verstehen, wie "for" funzt. > > MfG André H. > > > > > Hallo zusammen, > > habe bei folgendem Programm festgestellt, das die Variable > > Schleife nach dem Aufruf der Funktion immer den Wert 160 > > (warum auch immer) hat. In der Zeile > > > > for Schleife = ... > > > > wird zwar die Variable Schleife auf den Wert von AnzahlWerte > > gesetzt (in diesem Fall 10), dann aber die for Schleife sofort verlassen. > > > > Auch das einfügen von > > > > Schleife = AnzahlWerte; > > > > unmittelbar vor der for-Anweisung hat nichts gebracht. > > > > Abhilfe hat erst das umstellen der for-Schleife in > > > > for Schleife = 0 ... AnzahlWerte > > { > > } > > > > gebracht.In diesem Fall war das auch kein Problem. > > So nun meine Frage: Hat dieses Probleme mit step-1 > > auch schon ein anderer beobachtet, und hat jemand > > eine Idee warum das so ist, denn manchmal wäre eine > > rückwärts laufende Schleife doch eleganter als sie > > dann intern umzudrehen. > > > > mfg ToM > > > > --------------------------------------------------------------------------------------------------------------------------------------------------------------- > > > > > > function aussentempmitteln ( int HKNr, int AnzahlWerte ) > > { > > int Schleife; > > int Summe; > > > > for Schleife = AnzahlWerte ... 0 step -1 > > { > > /* diese Anweisungen wurden nie bearbeitet */ > > HK[HKNr].AussenTempArray[Schleife] = HK[HKNr].AussenTempArray[Schleife-1]; > > } > > } > > > > --------------------------------------------------------------------------------------------------------------------------------------------------------------- > > > > > > > > function aussentempmitteln ( int HKNr, int AnzahlWerte ) > > { > > int Schleife; > > int Summe; > > > > for Schleife = 0... AnzahlWerte-1 > > { > > /* und so hats prima funktioniert */ > > HK[HKNr].AussenTempArray[AnzahlWerte-Schleife] = HK[HKNr].AussenTempArray[AnzahlWerte-Schleife-1]; > > } > > } | |
Antwort schreiben Antworten: |