Iterator mit falschem WertHallo,
Ich bin neu bei JSL und habe versucht, den folgenden Code zum Laufen zu bringen:
dx = Open("Manually Logged Data.jmp");
Current Data Table (dx);
numberOfRowsManually = nrows(dx);
Column("End");
colManually = Column(4);
For (i = 1, i <= numberOfRowsManually, i++, print(colManually[i]));
print (i);
Die "Ende" -Spalte hat 14 Zeilen und ich versuche die Variable i zwischen 1 und 14 zu iterieren, aber wenn ich den Wert von i drucke, um ihn zu überprüfen, wird die Zahl 15 im Protokoll zurückgegeben. Sollte es nicht 14 zurückgeben, weil meine Datentabelle nur 14 Zeilen enthält?
Jede Hilfe wäre dankbar.
Re: Iterator gibt falschen WertIch bin mir nicht sicher, ob Sie wissen möchten, wie Sie mit der Funktion For () iterieren, Print () zum Testen verwenden oder ob Sie wirklich jeden Wert in einer Datenspalte im Protokoll drucken müssen. Im letzteren Fall zeigt dieser Code einen einfacheren Weg:
dx = Open( "Manually Logged Data.jmp" );
For Each Row(
Print( dx:End );
);
Re: Iterator gibt falschen WertIch verstehe, danke für die Hilfe!
Re: Iterator gibt falschen WertUm die Schleife zu beenden, erhöht JMP den Iterator um 1 und dann prüft, ob die Bedingung erfüllt ist, die Sie innerhalb der Schleife festgelegt haben. In diesem Fall drucken Sie den Wert des Iterators, nachdem er die Schleife beendet hat. Daher wird der erste Wert angezeigt, der dies tat nicht die Schleife erneut ausführen lassen. Beachten Sie in diesem Beispiel, wie 2 der letzte Wert innerhalb der Schleife ist, 3 jedoch wie in Ihrem Beispiel gedruckt wird:
Names default to here( 1 );
For( i=1, i <= 2, i++,
print( "Inside loop: " || char( i ) );
);
print( "Outside loop: " || char( i ) );