HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0219
hitochan無限ループしているのにループから脱出2未解決


hitochan

リンク

2007/2/19(Mon) 19:01:34|NO.5802


*selfget repeat tcpget size,5,gas.sc if stat!0:break await 1 loop size=int(size) repeat tcpget x.sc,size+1,gas.sc if stat!0:break loop size=str(size) repeat tcpget size,5,gas.sc if stat!0:break await 1 loop size=int(size) repeat tcpget y.sc,size+1,gas.sc if stat!0:break await 1 loop size=str(size) return
最初のループでmes命令でcntを表示すると、
1 2 3 4 5......という風にずっと増えていきます。
ということはこれは無限ループしているということになります。
しかし、returnの前にmes命令でなにかを表示するようにすると、
表示されています。
無限ループしているはずなのに脱出しています。
どこか、勘違いしているところがあるのでしょうか。



この記事に返信する


Drip

リンク

2007/2/19(Mon) 20:11:12|NO.5803

Dripです。

 hitochan さん、こんにちは。提示されたスクリプトをほぼそのまま実行してみましたが、
無限ループを脱出することはありませんでした。

#module #deffunc tcpget var a, int b,int c //tcpgetは必ずstatに0を返すようにする return 0 #global //以下hitochanさんのスクリプト *selfget repeat tcpget size,5,gas.sc if stat!0:break await 1 loop size=int(size) repeat tcpget x.sc,size+1,gas.sc if stat!0:break loop size=str(size) repeat tcpget size,5,gas.sc if stat!0:break await 1 loop size=int(size) repeat tcpget y.sc,size+1,gas.sc if stat!0:break await 1 loop size=str(size) mes "終わり。" //最後にmesで終了を通知 return
tcpget命令が、何かのタイミングで0以外を返しているか、
どこかで宣言したイベント(oncmdやonclick等)が割り込んで実行されている可能性があります。



hitochan

リンク

2007/2/20(Tue) 19:29:42|NO.5834

どうやらこれらが原因のようなのですが・・・
*delnewperと*selfgetが一緒にあることによってうまくいきません。
片方だけだとうまくいくのですが・・・

*delnewper;新しくログインした人、ログアウトした人 dns="" dns=strf("%02d",strlen(dn.sc))+dn.sc tcpput dns,gas.sc if dn.sc="-1":return;"-1"だったらなにも起こっていない。 if dn.sc="-2":nc=n.sc:tcpputc nc,gas.sc:userc=strf("%04d",strlen(user.nc))+user.nc:tcpput userc,gas.sc;"-2"だったら新しく誰かがログインした。 dn.sc="-1" ;それ以外の数はログアウトした人(0〜9) return *selfget repeat tcpget size,5,gas.sc if stat!0:break await 1 loop size=int(size) repeat tcpget x.sc,size+1,gas.sc if stat!0:break loop size=str(size) repeat tcpget size,5,gas.sc if stat!0:break await 1 loop size=int(size) repeat tcpget y.sc,size+1,gas.sc if stat!0:break await 1 loop size=str(size) return



ONION software Copyright 1997-2021(c) All rights reserved.