Re: 関数をとめる
いいじまです。
> var nf = 20;
> var ng = 0;
>
> function G(){
> if(ng<=21){
> document.all('id1').innerHTML = ++ng;
> setTimeout('G()',500);
> if(ng==21){F();}
> }
> }
>
> function F(){
> if(nf>=0){
> document.all('id1').innerHTML = --nf;
> setTimeout('F()',500);
> if(nf==0){G();}
> }
> }
>
> 発想は単純なんですが、折り返してきて-1で止まって
> しまいます。どこがいけないのでしょうか。
function G(){ の直後、if 文の前に、alert("ng="+ng); を入れてみましょう。
同様に、function F(){ の直後に、alert("nf="+nf); を入れてみましょう。
これをみると、if (nf==0) {G();} のところで、ngを21から0に戻していない、
同様に、if (ng==21) {F();} のところでnfを-1から20に戻していないことが
分かるはずです。
……これ、プロでもよくハマる落とし穴です。こういうときに、alert() 文の類
を仕込んで頻繁に変数の値をチェックしていくと、どこでおかしくなったのかが
わかります。この手法はぜひ覚えておきましょう。
========================================================================
飯嶋 浩光 / でるもんた・いいじま http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delmonta@ht.sakura.ne.jp
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735