do~while後判定ループややこしい

アルゴリズム素人です。

 

自分用メモ

 

よく「while文」で前判定ループは、処理に入る前に判定、後判定は、1回やるということを聞くが後判定ループややこしい。

前判定も後判定もwhile文は、繰り返すかの判定と繰返し処理をしている。
ただし、その「順序」が違う。

************************
前判定ループは 1.繰り返すかの判定 2.繰り返す対象の処理 
後判定ループは 1.繰り返す対象の処理 2.繰り返すかの判定 
の順序
(引用:「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典さま)

************************

後判定は、その条件もやって、抜けるので、例えば、それに対して、後判定ループは
 1.繰り返す対象の処理
 2.繰り返すかの判定
の順番
 
例えば後判定 while J<Nの場合、J = 5 N = 5も1回やる。その後で繰り返しはしないと判定する。(前判定だと while J < N だと J = 5 N = 5はしない)

 

例えば後判定 while i<N-1の場合、i = 4 N = 5も1回やる。その後で繰り返しはしないと判定する。(前判定だと while i < N-1 だと i = 4 N = 5はしない)

 

「while文を使った後判定のアルゴリズム・プログラムの条件は、やっちゃった後での判断用と考える。」
反対に言うと、後判定while ●<〇の場合、●=〇までやって、ループを抜ける。(前判定while ●≦〇と同じ)

後判定は、なんか条件を超えてやっているような錯覚になる。。。

 

while do

do while

の順番が、do(処理) while(判断)に表れていて、それぞれ別個と考えたほうがしっくりくるのか。も。