Aktuelle Zeit: 17.06.2019 13:19

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: [erledigt]For/Next - normales Verhalten oder Bug?
BeitragVerfasst: 25.04.2019 02:26 
Offline

Registriert: 22.03.2005 00:29
Wohnort: LK Wolfenbüttel
Hallo.

Vorab, ich nutze noch die PB Version 5.60 und habe seit Jahren mich icht mehr mit PB beschäftigt, erinnere mich also nicht mehr an alles.

Code:
    For Bytezaehler = 1 To 440
     
    Next Bytezaehler
   
    Debug "Bytezaehler:" + Str(Bytezaehler)


Wenn ich von dieser Schleife ausgehe hätte ich erwartet, NACH dem Ende der Schleife wäre der

Inhalt der Variablen "Bytezaehler" der Wert 440.

Nur ist es der Wert 441. Es wird also nach dem Ende der Schleife noch einmal hoch gezählt. Das kommt mir etwas eigenartig vor.

Ist das ein Bug, ist das "absichtlich" so und wenn es absichtlich ist, weshalb?
Das die Variable diesen Wert bekommen kann, obwohl er laut Schleife nicht auftreten dürfte erscheint mir nicht sehr schlüssig.

Gruß
Toshy

_________________
1. AMD Athlon II X2 250P,4GB-RAM,WinXP
2. Notebook,500mhz,128MB-RAM,WINXP
3. WHS 2003
Inet: 6Mbit Down/386Kbit Up,Flat
PB4.60
Messenger: Trillian


Zuletzt geändert von Toshy am 27.04.2019 03:16, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: For/Next - normales Verhalten oder Bug?
BeitragVerfasst: 25.04.2019 04:41 
Offline
Benutzeravatar

Registriert: 11.11.2004 17:52
Wohnort: Bremen
Guten Morgen Toshy,

das Verhalten ist normal.
Beim Befehl 'FOR x TO y' wird die Schleife abgefragt und am Ende 'NEXT x' der Wert erhöht.
Ist 'x' jetzt höher als 'y' so wird nicht mehr in die Schleife gesprungen sondern das Programm weiter ausgeführt.

_________________
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB5.70 LTS].


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: For/Next - normales Verhalten oder Bug?
BeitragVerfasst: 25.04.2019 09:28 
Offline

Registriert: 29.08.2004 13:18
Übrigens, es schadet nicht, den Inhalt von der Variable nach Next als ungültig anzusehen. Man sollte nicht damit arbeiten, ohne vorher sie einen Wert zuweisen.
Es ist bspw. denkbar, das man das Verhalten auf Grund von Optimierungen ändert oder eben, das es in anderen Programmiersprachen anders gelöst ist. Einfach eine Potentielle Fehlerquelle. Am besten Schleifen-Variablen nur innerhalb der Schleife benutzen.

_________________
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: For/Next - normales Verhalten oder Bug?
BeitragVerfasst: 25.04.2019 10:28 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
Die gleiche Frage hatte ich mir (und der geduldigen Community) vor 12 Jahren auch schon gestellt: viewtopic.php?f=3&t=14614
Irgendwie kam auch mir das fremd vor, aber das scheint wirklich normal zu sein. :)

(und weil ich offenbar irgendwann danach "geblitzdingst" worden bin, habe ich drei Jahre später die gleiche Frage noch einmal gestellt, wie ich bei meiner Suche gerade feststelle. :lol: - ich sag's euch, manche Multitasking-lastigen Berufe machen einen fertig.)

_________________
"Never run a changing system!"
PB 5.62, OS: Windows 7 Pro x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 51.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: For/Next - normales Verhalten oder Bug?
BeitragVerfasst: 25.04.2019 11:25 
Offline
Benutzeravatar

Registriert: 04.08.2009 17:24
Ist doch auch gut so. Damit kann überprüft werden, ob eine Schleife bis zum Ende durchlaufen wurde, oder ob sie mit Break abgebrochen wurde.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: For/Next - normales Verhalten oder Bug?
BeitragVerfasst: 25.04.2019 20:09 
Offline

Registriert: 22.03.2005 00:29
Wohnort: LK Wolfenbüttel
Ich danke euch.
Vermutlich habe ich den Beitrag damals auch gelesen. Nur ihn nicht mehr gefunden.
Ist halt alles lange her.

Und ich kämpfe mich gerade wieder ein bissl rein in das Zeug. So ist es, wenn es scheinbar auf der ganzen erreichbaren Welt nicht ein Tool gibt, daß macht was es soll. hihi.

Na ja, eines vielleicht. Nur wird da ständig mein Antivirenprogramm wach.

Na dann muß ich das irgendwie manuell bzw. anders lösen. Ist schon dumm. Zweite Variable für das, was man eh schon gezählt hat. Und dann ist es noch an der idealen Stelle.

Na ja, mal schauen ob ich den Wert nur um eines runter setze oder extra eine oder mehrere Variablen nutze.

Nochmals danke und Gruß Toshy

_________________
1. AMD Athlon II X2 250P,4GB-RAM,WinXP
2. Notebook,500mhz,128MB-RAM,WINXP
3. WHS 2003
Inet: 6Mbit Down/386Kbit Up,Flat
PB4.60
Messenger: Trillian


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: For/Next - normales Verhalten oder Bug?
BeitragVerfasst: 26.04.2019 17:01 
Offline
Benutzeravatar

Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten
Hallo Toshy
Code:
c:pbcompiler Bytezähler.pb /Commented

Erzeugt folgenden Code:
Code:
; For Bytezaehler = 1 To 440
  MOV    qword [v_Bytezaehler],1
  JMP   _ForSkipDebug1
_For1:
_ForSkipDebug1:
  MOV    rax,440
  CMP    rax,qword [v_Bytezaehler]
  JL    _Next2
;
; Next Bytezaehler
_NextContinue2:
  INC    qword [v_Bytezaehler]
  JNO   _For1
_Next2:
;
; Debug "Bytezaehler:" + Str(Bytezaehler)


Gruß

_________________
PB Spickzettel

Erkenntnisapparat einschalten entscheidet über das einzig bekannte Leben im sichtbaren Universum.
Bitte Frage fragen.
Jürgen Kulow Wersten :D_üsseldorf NRW D Europa Erde Sonnensystem Lokale_Flocke Lokale_Blase Orion-Arm
Milchstraße Lokale_Gruppe Virgo-Superhaufen Laniakea Sichtbares_Universum


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [erledigt]For/Next - normales Verhalten oder Bug?
BeitragVerfasst: 28.04.2019 20:28 
Offline
Benutzeravatar

Registriert: 06.07.2014 12:21
was mir noch aufgefallen ist, dass wenn next von vornherein kleiner als Start ist, die Schleife wie bei While Wend gleich übersprungen wird.
Code:
For t=0 To 0
   Debug T
Next    
For t=1 To 0
   Debug T
Next    

_________________
Intel Quad Core 3,2 Ghz - GTX 1060 - BlitzBasic Plus 1.48 , PureBasic 5.60 LTS / Aktuelles Projekt PureCommander


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [erledigt]For/Next - normales Verhalten oder Bug?
BeitragVerfasst: 28.04.2019 21:15 
Offline

Registriert: 29.08.2004 13:18
füg ein "Step -1" ein :)

_________________
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [erledigt]For/Next - normales Verhalten oder Bug?
BeitragVerfasst: 30.04.2019 18:34 
Offline
Benutzeravatar

Registriert: 06.07.2014 12:21
@GPI
Zitat:
füg ein "Step -1" ein

das weiß ich doch GPI, es ging mir mehr darum das nicht in die schleife gesprungen wird, sondern diese übersprungen wird was durchaus nützlich ist.

_________________
Intel Quad Core 3,2 Ghz - GTX 1060 - BlitzBasic Plus 1.48 , PureBasic 5.60 LTS / Aktuelles Projekt PureCommander


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye