Re: Problem mit for-Schleife Kategorie: Programmierung (von André H. - 24.02.2003 8:53) | |
Als Antwort auf Problem mit for-Schleife von ToM - 24.02.2003 8:16
| |
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 >= 0 step -1 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 - 1 } 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 - 1 } 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]; > } > } Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | |
Antwort schreiben Antworten: Re: Problem mit for-Schleife (von ToM - 24.02.2003 10:24) |