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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
1231
あいそとーぷbuttonを使った時のネストの解消4解決


あいそとーぷ

リンク

2021/12/31(Fri) 20:18:26|NO.94840


button "button",*btn stop *main repeat await loop *btn goto *main
このようなプログラムを実行しボタンを連打すると
「ネストが深すぎます」という旨のエラーがでてしまうのですが
どのようにしたらエラーがでなくなるのでしょうか



この記事に返信する


ねんねこ5787

リンク

2021/12/31(Fri) 20:33:12|NO.94841


button "button",*btn stop *main repeat await loop *btn stop
これで発生しなくなるかな?



沢渡

リンク

2021/12/31(Fri) 21:13:33|NO.94842

マニュアルには
>割り込みによるジャンプ(on??? gosubを使わない割り込み)が発生した場合には、
>サブルーチンやrepeat〜loopのネストはすべて0(初期状態)に戻されます
という(正直、なんでこんなややこしい仕様にしたんだか意味不明な)仕様が
書いてあり、それを踏まえればエラーにはならない筈なのですが、おかしいですね。

とりあえず、buttonをbutton gosubにし、gotoではなくreturnで戻るようにすれば
エラーにはならないと思います。

button gosub "button",*btn repeat await 100 loop *btn return



とあるプログラマ

リンク

2021/12/31(Fri) 22:23:35|NO.94843

この場合の深すぎてしまうネストとはsublevではなくlooplevです。

button "button",*btn stop *main repeat await loop *btn title "" + looplev + "" goto *main
これでlooplevが上がっていく様子がわかると思います。


repeat〜loop でループしている間にgotoジャンプするとrepeatの入れ子状態が続いてしまうので、沢渡のようにgosub&returnを使うか、breakして「すべてのrepeatを抜けてから」gotoしましょう。


もしくは純粋に

button "button",*btn stop *main await goto *main *btn goto *main
このようにgotoだけ使う方法で解決することもできます。



あいそとーぷ

リンク

2022/1/1(Sat) 15:02:52|NO.94846

解決しました!
解答してくれた方々ありがとうございました!



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.94840への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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