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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0215
roppyakukee(afo)(小さいミス)このスクの問題点が分からない5解決


roppyakukee(afo)

リンク

2014/2/15(Sat) 00:08:04|NO.59966


;メインループ *main redraw 0 gosub*scini gosub*hensu gosub*buttons_kai gosub*debug redraw 1 await 10 goto*main *buttons_kai repeat 4 btny=cnt repeat 3 btnx=cnt ;色々 loop loop repeat 10:if num(cnt)=2:inputpass+=str(cnt):loop if BS=2 or DEL=2:inputpass="" return //略
サブルーチンネストがふけーよバーカって言われるんです。
repeat 10:if num(cnt)=2:inputpass+=str(cnt):loop

repeat 10:/*〜〜〜*/:inputpass+=str(cnt):loop
にするとエランないんです。


どういう状況なんでしょうか・・・
numは[dim num,10]のように初期化しています。タイプミスでもなさそうです。



この記事に返信する


kanahiron

リンク

2014/2/15(Sat) 00:45:37|NO.59971

ラベルが幾つか省略されていますがそこにreturn抜けは無いでしょうか?



MillkeyStars

リンク

2014/2/15(Sat) 00:53:12|NO.59972

repeat 10:if num(cnt)=2:inputpass+=str(cnt):loop
↑の命令名よーくみてわからないかな?
上のスクリプト行を分解してみてね。

repeat 10
if num(cnt)=2:inputpass+=str(cnt):loop
////あれ・・・loop がない?

if は、条件分岐命令を{}で記載しない限り、同じ行の最後までを条件分岐後命令として認識します。
上記の場合、num(cnt)=2 の場合、inputpass+=str(cnt) と loop を実行します。

以下の場合のみ、一行記載が可能となります。
repeat 10:if num(cnt)=2{inputpass+=str(cnt)}loop



inovia

リンク

2014/2/15(Sat) 00:55:53|NO.59973


repeat 10:if num(cnt)=2:inputpass+=str(cnt):loop


repeat 10:mes cnt:if num(cnt)=2:inputpass+=str(cnt):loop
とすると、出力が全部0になっているので、
恐らく以下のような感じに解釈されてるかと。


repeat 10 mes cnt if num(cnt)=2{ inputpass+=str(cnt) loop }

これですと、cnt = 0のときにloop命令が処理されないので、
どんどんループネストが溜まってしまい、エラーが起きているのかと。



roppyakukee(afo)

リンク

2014/2/15(Sat) 00:56:52|NO.59974

if num(cnt)=2
を抜くとエラーを吐かなくなるんです。

これがあると、起動後即エラー。
これを省くと、普通に稼働する。

あと、なぜか
エラー行が
>repeat 10:if num(cnt)=2:inputpass+=str(cnt):loop
ではなく
>repeat 3
が指摘されます。
あいつ(if num(cnt)=2)がいなければちゃんと動くのに。



roppyakukee(afo)

リンク

2014/2/15(Sat) 00:58:17|NO.59975

すれ違い。
分かりました・・・超ドジってますね



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