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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0414
愛好家分岐プログラム3解決


愛好家

リンク

2011/4/14(Thu) 19:03:07|NO.38397

例えば 
<<n=1かつA=1のとき*n1A1へ n=1かつA=2のとき*n1A2へ n=2かつA=1のとき*n2A1へ……>>
というようなプログラムを作る時

if n=1&A=1:gosub*n1A1 if n=1&A=2:gosub*n1A2 if n=2&A=1:gosub*n2A1       :       :
と言ったようにifを使っているのですが、もっと効率の良い方法はありませんか?



この記事に返信する


test

リンク

2011/4/14(Thu) 19:13:05|NO.38398

配列を使う方法があります。実はラベルも変数に入れることができるので、次のようにできます。
nの値 = 1,1,2
Aの値 = 1,2,1 ラベル = *n1A1,*n1A2,*n2A1 n=1 A=2 foreach ラベル if n=nの値(cnt) & A=Aの値(cnt){ gosub ラベル(cnt) } loop stop *n1A1 dialog "n=1,A=1" return *n1A2 dialog "n=1,A=2" return *n2A1 dialog "n=2,A=1" return
nの値、Aの値、ラベルの3つの配列変数を用意しています。
しかし現実的には、結局似たようなラベルが複数作られることも多いので、ラベルを分けずに何とかすることを考えたほうがいいかもしれません。



愛好家

リンク

2011/4/14(Thu) 20:49:35|NO.38402

ありがとうございました。



愛好家

リンク

2011/4/14(Thu) 20:50:02|NO.38403

チェックをつけ忘れました



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