खोज…
टिप्पणियों
जब आंतरिक टेबल के ऊपर पाशन, यह आम तौर पर बेहतर है ASSIGN एक क्षेत्र प्रतीक के बजाय पाश करने के लिए INTO एक कार्य क्षेत्र। फ़ील्ड प्रतीकों को असाइन करना प्रत्येक पुनरावृत्ति के दौरान आंतरिक तालिका की अगली पंक्ति को इंगित करने के लिए उनके संदर्भ को अद्यतन करता है, जबकि INTO परिणाम का उपयोग कार्य क्षेत्र में कॉपी की जाने वाली तालिका की पंक्ति में होता है, जो लंबी / चौड़ी तालिकाओं के लिए महंगा हो सकता है।
आंतरिक तालिका लूप
LOOP AT itab INTO wa.
ENDLOOP.
FIELD-SYMBOLS <fs> LIKE LINE OF itab.
LOOP AT itab ASSIGNING <fs>.
ENDLOOP.
LOOP AT itab ASSIGNING FIELD-SYMBOL(<fs>).
ENDLOOP.
LOOP AT itab REFERENCE INTO dref.
ENDLOOP.
LOOP AT itab TRANSPORTING NO FIELDS.
ENDLOOP.
सशर्त लूपिंग
यदि केवल एक निश्चित स्थिति से मेल खाने वाली रेखाओं को लूप में लिया जाना चाहिए, तो इसके अलावा WHERE जोड़ा जा सकता है।
LOOP AT itab INTO wa WHERE f1 = 'Max'.
ENDLOOP.
घुमाव के दौरान
ABAP पारंपरिक WHILE -रूप भी प्रदान करती है जो तब तक चलती है जब तक कि दी गई अभिव्यक्ति गलत का मूल्यांकन नहीं करती है। हर लूप स्टेप के लिए सिस्टम फील्ड sy-index को बढ़ाया जाएगा।
WHILE condition.
* do something
ENDWHILE
लूप करें
किसी भी अतिरिक्त के बिना DO लूप अंतहीन या कम से कम चलता है जब तक कि यह स्पष्ट रूप से अंदर से बाहर नहीं निकलता है। हर लूप स्टेप के लिए सिस्टम फील्ड sy-index को बढ़ाया जाएगा।
DO.
* do something... get it?
* call EXIT somewhere
ENDDO.
TIMES अलावा प्रस्तावों दोहराने कोड के लिए एक बहुत ही सुविधाजनक तरीका ( amount प्रकार का एक मूल्य का प्रतिनिधित्व करता i )।
DO amount TIMES.
* do several times
ENDDO.
जनरल कमांड्स
छोरों को तोड़ने के लिए, कमांड EXIT का उपयोग किया जा सकता है।
DO.
READ TABLE itab INDEX sy-index INTO DATA(wa).
IF sy-subrc <> 0.
EXIT. "Stop this loop if no element was found
ENDIF.
" some code
ENDDO.
अगले लूप चरण पर जाने के लिए, CONTINUE का उपयोग किया जा सकता है।
DO.
IF sy-index MOD 1 = 0.
CONTINUE. " continue to next even index
ENDIF.
" some code
ENDDO.
CHECK स्टेटमेंट शर्त के साथ एक CONTINUE । हालत निकलती है तो गलत, CONTINUE क्रियान्वित की जाएगी। दूसरे शब्दों में: लूप केवल चरण के साथ आगे बढ़ेगा यदि स्थिति सत्य है ।
CHECK का यह उदाहरण ...
DO.
" some code
CHECK sy-index < 10.
" some code
ENDDO.
... के बराबर है ...
DO.
" some code
IF sy-index >= 10.
CONTINUE.
ENDIF.
" some code
ENDDO.