LOOPの仕方
LOOPの仕方についてRPGとCを比較して見ましょう!
RPGでのLOOPにはどんな命令がありますか?思いつくものをあげてみましょう。
H Y/ 1
H*------------------------------------------------------------*
H* PROGRAM-ID : LOOP1R *
H* REMARKS : RPGのLOOP
H* AUTHOR : Y.IDE *
H* DATE-WRITEN : 98/08/31 *
H* VERSION : 01.00 ORIGINAL *
H*------------------------------------------------------------*
C 1 DO 10 X 30
C ENDDO
C*--------------------------------------*
C Z-ADD0 X
C X DOUGE10
C ADD 1 X
C ENDDO
C*--------------------------------------*
C Z-ADD0 X
C X DOWLE10
C ADD 1 X
C ENDDO
C*--------------------------------------*
C DO *HIVAL
C LEAVE
C ENDDO
C*--------------------------------------*
C SETON LR
C RETRN
|
RPGでは、DO,DOWxx,DOUxx,DO *HIVIL(永久ループ)などが利用できます。
Cではどうでしょうか?
/*--------------------------------------------------------------*/
/* PROGRAM-ID : LOOP1C */
/* REMARKS :ループの仕方
/* AUTHOR : Y.Ide */
/* DATE-WRITEN : 98/09/27 */
/* VERSION : 01.00 ORIGINAL */
/*--------------------------------------------------------------*/
#include <stdio.h>
int main(void)
{
int x;
/* 1 DO 10 Xに対応*/
for(x=1; x <= 10; x++){
/* なんにもしない*/
}
/* X DOUGE10に対応*/
do{
x++; /* ADD 1 Xと同じ*/
} while(!(x >= 10));
/* X DOWLE10に対応*/
while(x <= 10){
x++; /* ADD 1 Xと同じ*/
}
/* X DO *HIVALに対応*/
while(1){
break;
}
for(;;){
break;
}
}
|
RPGのDOUxx(DO UNTIL)は、loopを実行してから式の評価を行います。
これは、Cのdo{]while()に対応するのですが、条件が〜までというのは表現できません
そのため、上記では、while(!(x >= 10))の様に!をつけて〜ではないあいだと言う評価をしています
|