板橋さん、杉田さん、こんにちは


ナカジマです。

(少なくとも ie6.0/win98 の僕の環境では)増減式のところに、
関数を用いても大丈夫なようです。

わざわざ関数を呼び出すと、インデントが深くなる問題は
本質的には避けられていないような気もしますが、
直感的には、同程度にわかりやすいような気もしますので、
紹介だけ。


function incre(i){
do 
i++;
while ((i<5||i>=7)==false)
return i;
} 

for(i=2;i<10;i=incre(i)){
   // 処理
   alert(i);
}

/*
while ((i<5||(i>=7&&i<10))==false)
としてしまうと、i=9 の時の処理の後、増減式に従って
i=10 となった時点で、無限に i++がくり返される。
for文の判定にかかる前に無限ループにはまってしまう。
*/


==
Satoshi Nakajima 中島 敏
mailto:nakajima@chem.gunma-ct.ac.jp