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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0805
shibaif命令での命令の継続8解決


shiba

リンク

2015/8/5(Wed) 02:05:23|NO.70484

if命令で「"○"をしたら"×"、"△"をしたら"□"、それ以外の時はそのまま」というのをしたいのですが、

if ○{×}△{□}else{}

まではわかるのですが、elseの後をどうすればいいのかがわかりません。
どうすればいいか教えてください。



この記事に返信する


玄冬

リンク

2015/8/5(Wed) 02:52:02|NO.70486

> ○{×}△{□}else{}まではわかる
というのは△に正常に動く構文を書けるという意味でよろしいでしょうか?

であれば記載通り、elseの後の{}を空欄にすることで、
>それ以外の時はそのまま
になります。
また、
○{×}△{□}
のようにelse以下を書かなくても同様です。

ただし
if a=1{mes "1"}a=2{mes "2"}

のように△にただ式を書くという意味であれば、そもそも書き方が違いますので、 マニュアルを再読することをお勧めします。 変数が関わるならswitchマクロでも良いかもしれません。



Moz

リンク

2015/8/5(Wed) 03:13:36|NO.70489

> それ以外の時はそのまま
そのままというのが何もしないということであれば、こういう感じになります。

if a=1 { //"○"をしたら"×" mes "A" } else { if a=2 { //"△"をしたら"□" mes "B" } }



(´ω`)

リンク

2015/8/7(Fri) 12:15:24|NO.70541

〇や△が全て数値や文字列の比較で済むなら、switch〜swend文がおすすめです。(´ω`)

switch [変数] case 〇 (命令文1) swbreak case △ (命令文2) swbreak default (命令文3) swbreak swend
これで、変数の中身が〇なら命令文1、△なら命令文2、そのほかなら命令文3が
実行されます。



GENKI

リンク

2015/8/8(Sat) 12:10:38|NO.70558

このままではわかりにくいので仮に具体的なものに置き換えてみます。

> "○"をしたら"×"
○ → 変数aに1を代入する
× → 変数bに3を代入する

> "△"をしたら"□"
△ → 変数aに2を代入する
□ → 変数bに4を代入する

> それ以外の時はそのまま
変数bは初期値のまま。


仮に以上の条件としてサンプルを書いてみました。
いろいろ書き方はありますが、わかりやすさ重視で書いてみました。

; 初期値(何もしない状態の値) a = 0 b = 0 ; 何かする a = 1 ;○をする ;a = 2 ;△をする ; 内容に応じた処理を行う ;"○"をした? if a = 1 { ;"○"をしたので"×"をする b = 3 } ;"△"をした? if a = 2 { ;"△"をしたので"□"をする b = 4 } ; 結果を確認 mes "a = " + a mes "b = " + b
つまり何もしたくなければ何もしなければいいんです。
if文は他の命令とはちょっと違う動きと書き方なのでなれないうちは戸惑うところです。
でも何回か書いて悩んでを繰り返してればそのうちなれます。

「フローチャート」の書き方をちょっとだけ調べてみることをおすすめします。Wikipedia眺める程度でも十分です。(描けるようになれなんていいません!)



shiba

リンク

2015/8/14(Fri) 02:11:05|NO.70712

switch〜swendでやる時、defaultの後を「そのまま」にする場合は、elseと同じように空白にすればいいですか?



窓月らら

リンク

2015/8/14(Fri) 12:19:11|NO.70717

shibaさん>

何も処理しない(そのまま)場合は default は書く必要がありません。
default が必要になるのは、○や△以外だった場合に何らかの処理をしたいときだけ。

switch [変数] // ここは評価する値 case 〇 // 値1 (命令文1) swbreak // これが無いと△以下も実行されてしまう case △ // 値2 (命令文2) ;swbreak // 一番下のこれは無くていい swend



shiba

リンク

2015/8/24(Mon) 01:43:34|NO.71017

返信が遅れました!ありがとうございました!



Velgail

リンク

2015/8/24(Mon) 01:54:45|NO.71018

else ifをHSPで書くときは

if (a==1){ //do something }else:if(a==2){ //do something }else{ //do something }
が一番読みやすく出来ると思います。コロンが肝です。



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