制御レベル処理のAT FIRST
ステートメントは、実行する必要があるコマンドや、ループ自体の実行を開始する前に初期化する必要がある変数に最適のようです。コマンドが作業領域の列をクリアする方法を考えるとAT
、これは私がまだ見ている数少ない用途の 1 つです。
これを行うのではなく、説明するために:
CLEAR lv_loopcounter.
LOOP AT lt_itab INTO ls_wa.
ADD 1 TO lv_loopcounter.
...
ENDLOOP.
これを行うことができます:
LOOP AT lt_itab INTO ls_wa.
AT FIRST.
CLEAR lv_loopcounter.
ENDAT.
ADD 1 TO lv_loopcounter.
...
ENDLOOP.
ここで、ループが意図したとおりに機能するには、変数を初期化する必要があることがすぐにわかります。また、ループの前に実行する必要があるステートメントが多数ある場合に、コードの見栄えがよくなります。私が見る唯一の欠点は、LOOP
論理的にそうすべきではないときに、ステートメント内でコードを移動することです。
ここにベストプラクティスはありますか? 注意すべき隠れた警告はありますか?