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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0127
tsukaif「もしも、○○が、××か△△か□□なら、〜」7解決


tsuka

リンク

2009/1/27(Tue) 21:47:49|NO.23085

if文で、
「もしも、○○が、××か△△か□□と同じなら、〜」
とするにはどうしたらよいのでしょうか?

一つ一つ
if ○○ = ×× | ○○ = △△ | ○○ = □□ {
}
では見づらいし、多くなったときに見づらくなってしまいます
switchを使うしかないのでしょうか?



この記事に返信する


ANTARES

リンク

2009/1/27(Tue) 22:48:32|NO.23086

 場合によっては
on ○○ gosub *▽▽, *▽▽, *▼▼, *▽▽, *▼▼, *▼▼
とかいう手もあります。



ほげ

リンク

2009/1/27(Tue) 23:06:22|NO.23087

自分ならswitch使うかなー

ただ、swicthとかって結構遅くなったりするから
高速に処理する必要があるときなんかはif&elseで何とかするなー

repeat 1 if a == "○"{ }else:if a == "×"{ }else:if a == "△"{ }else:if a == "◇"{ }else:break mes "a="+a loop



GENKI

リンク

2009/1/27(Tue) 23:15:07|NO.23089

あれ…こういうことではないんでしょうか。

a=10 b=10 : c=20 : d=30 if a=b|a=c|a=d : mes "ok 1" e = a=b e |= a=c e |= a=d if e : mes "ok 2"
switch?…むう。



tsuka

リンク

2009/1/28(Wed) 00:09:47|NO.23090

>ANTARESさん
今回はその方法は使えなさそうです

>ほげさん
elseは結構見づらくなっちゃうのでswitch使うことにします

>GENKIさん
おおぉ
そんな方法があるのですね
でも、やっぱりスマートにやりたいです

こんな↓感じに出来たらいいんですけどね・・・でもこれじゃ意味が違ってきちゃうし・・・
if ○○ = ××|□□|△△ {
}

ありがとうございました



SYAM

リンク

2009/1/28(Wed) 00:23:10|NO.23091

文字だったら、候補を列挙した文字列からinstrで検索して、結果が 0 以上なら真。
なーんてのを使っています。

a="t" b="qwerty" if (instr(b,0,a)>=0){ mes "変数a は q,w,e,r,t,yのどれかです." }else{ mes "変数a は q,w,e,r,t,yのどれでもないです." }

文字列の場合はちょい面倒ですが、候補に出てこない記号を付加してやればなんとかできます。

a="abc" b=",abc,def,ghi," if (instr(b,0,","+a+",")>=0){ mes "変数a は abc,def,ghiのどれかです." }else{ mes "変数a は abc,def,ghiのどれでもないです." }

最初のはこんな感じに応用できます。

a="a" b="aiueo" m(0)="「あ」です" m(1)="「い」ですね" m(2)="へんじ が ない. ただの「う」のようだ" m(3)="「え」かしら。" m(4)="「お」のことか-------!!!!" idx=instr(b,0,a) if (idx>=0){ mes a+" は "+m(idx) }else{ mes a+" は ローマ字の母音ではないです。" }

どれも、候補が多いほど、条件式を列挙したりrepeat命令でループするより速くなるんじゃないかなー と思います。



M

リンク

2009/1/28(Wed) 23:00:12|NO.23125

普通に括弧を使って
if(○○=××)or(○○=△△)or(○○=□□){...}

長くなりそうなときは、こんなこともやりました。
flg=0
if ○○=××:flg=1
if ○○=△△:flg=1
if ○○=□□:flg=1
if flg=1{...}

デバックしやすければ、速度は二の次でもいいかな〜っと。



774

リンク

2009/1/31(Sat) 01:39:02|NO.23154

>flg=0
>if ○○=××:flg=1
>if ○○=△△:flg=1
>if ○○=□□:flg=1
>if flg=1{...}
この書き方はどんな開発言語でも普通に使うはずだと思ってる



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