switch

比較ブロック開始

switch p1

p1 : 比較元

解説

switchcaseswend は、ブロック内に複数の条件判断と処理をまとめて書くことができる構文です。
p1で指定する比較元のパラメーターは、変数または式を指定することができます。switch以降は、

case 比較値

を置くことで、これ以降に「比較元」が「比較値」と同じだった場合に処理する内容を記述することができます。
caseは、ブロック内に複数記述することができ、それぞれの比較値ごとの処理を指定できます。caseの比較が正しい場合は、 swbreakが存在するまで以降の命令を実行します。また、caseの替わりに

default

を置くと、caseで指定したどの比較値にもあてはまらない条件の場合に以降が実行されます。

switchブロックが終了した場合は、

swend

を必ず最後に書いておく必要があります。
以下は、switchマクロを使用したスクリプトの例です。

	a=0
	switch a               ; aを比較対象とする
	case 0                 ; aが0だった場合
		mes "A=0"
		swbreak            ; case0の条件実行終了
	case 1                 ; aが1だった場合
		mes "A=1"
	default                ; aが0以外だった場合
		mes "A!=0"
		swbreak
	swend

この例では、変数aの内容が0か1かそれ以外かで条件分岐を行なっています。
「case 0」以降は、「swbreak」までが実行されますが、「case 1」の場合は、「swbreak」が存在しないため、「default」以降に実行される「mes "A!=0"」も含めて実行されるので注意してください。

関連項目

case比較値指定
defaultデフォルト比較指定
swbreak比較実行脱出指定
swend比較ブロック終了

サンプル逆引き (2)

arusave.hsp
switch.hsp

情報

バージョン3.2
作成日2009/08/01
著作者onitama
URLhttp://www.onionsoft.net/
備考ver3.2標準命令
タイプ内蔵命令
グループプログラム制御マクロ
対応環境
  • Windows 版 HSP
  • コマンドライン版 HSP
  • HSPLet
hs ファイルhsphelp\i_prog.hs