Code: Alles auswählen.
while var_x <= cond #( when ausda > time_result-ausda then endda
else ausda ).
" some stuff
endwhile.
Code: Alles auswählen.
data(temp) = cond #( when ausda > time_result-ausda then endda
else ausda )
while var_x <= temp.
" some stuff
endwhile.
Gut das ist das was ich wissen wollte. Dass die Bedingung im WHILE immer geprüft wird, ist klar. Das ist ja der Sinn dahinter. Nun ist es halt so, dass das Programm in dem Moment bei jedem Schleifendurchlauf 2 Prüfungen macht ( zuerst die von COND und dann die von WHILE )ralf.wenzel hat geschrieben:COND ist ein Befehl, der steht im Kernel, da wird nichts durchlaufen. WHILE prüft die Bedingung auch bei jedem Durchlauf.
Funktionale Methoden werden immer durchlaufen, ein Aufruf weiß nichts von einem anderen. Willst du das verhindern, musst du den Wert puffern und auslesen.
Ich glaube nicht, dass das die Prüfung schneller macht....SaskuAc hat geschrieben:Gut, dann sollte man wirklich immer eine temporäre variable machen, wenn eine etwas größere Logik verwendet werden würde..
Was mich bei dieser Frage am meisten verwundert ist, dass sie überhaupt gestellt wird.SaskuAc hat geschrieben:Einer meiner Punkte ist das ab ABAP 7.40 eingeführte Statement "COND". Nun wüsste ich gerne, wie sich das in schleifen verhält.
Prüft das Statement in einer Schleife immer wieder von neuem die condition oder nur einmal und "speichert" diese dann?
Weil Du nicht verstanden hast, was er gemeint hat. Dabei ist es doch eigentlich offensichtlich, wenn man seinen ersten Beispielcode anschaut, wo er beide Fälle exemplarisch darstellt.ralf.wenzel hat geschrieben:Ich glaube nicht, dass das die Prüfung schneller macht....SaskuAc hat geschrieben:Gut, dann sollte man wirklich immer eine temporäre variable machen, wenn eine etwas größere Logik verwendet werden würde..