if

条件を満たしていればその行の命令を実行

if p1

p1 : 条件式

解説

p1の条件式が満たされていれば、それ以降の命令を実行する。満たされていな
い場合は、次の行に移ります。
BASICと違い、その行の次の命令との間には :(コロン)を入れなければいけないの
で注意してください。

例 :
	a=10
	if a=10 : mes "aは10です。"

上の例では、「a=10」の部分が条件式になります。条件式には主に、

	a=b  : aとbは等しい
	a!b  : aとbは等しくない
	a<b  : aはbよりも小さい
	a>b  : aはbよりも大きい
	a<=b : aはbよりも小さいか等しい
	a>=b : aはbよりも大きいか等しい

を使います。if+条件式の後は:(コロン)で区切り、それに続いて条件が満た
された場合に実行される部分を書きます。
(C言語やJavaと同じように「=」「!」を「==」「!=」のように記述することも
可能です) もし、条件によってプログラムの流れを変えたい場合には、

例 :
	a=10
	if a>10 : goto *over10
	mes "aは10以下です。"
	stop
*over10
	mes "aは10より大きいです。"
	stop

上のように、goto命令で別なラベルに飛ばすことも可能です。
また、else命令を使って条件が満たされなかった場合の処理を同じ行に書くこ
とも可能です。

例 :
	a=10
	mes "aは、"
	if a=10 : mes "10です。" : else : mes "10ではありません。"
	stop

この場合は、else命令のある部分までは、条件を満たした場合に実行され、
else命令以降は、条件を満たされなかった場合に実行されます。
次の行以降は、条件に関わらず通常通りに実行されます。

より複雑な条件判断をするために、論理演算式を使うこともできます。

   a&b  : aとbがともに正しい (and)
   a|b  : aとbのどちらかが正しい (or)

これによって複数の条件を一度に記述することができます。

例 :
	a=10:b=20
	if (a=10)|(b=10) : mes "aかbのどちらかが10です。"

上の例では、「a=10」と「b=10」 という条件式を|(or)でつないで、どちらか
が正しい場合には、正しいという結果が出るようにしています。
論理演算は、 「|」「&」といった記号の他に「or」「and」という文字列でも
記述することができます。

例 :
	if (a=10)or(b=10) : mes "aかbのどちらかが10です。"

上のように書いても、結果は同じになります。

if命令の条件が正しい時に実行されるスクリプトを複数行に渡って記述する場
合は、

例 :
	a=10
	if a>5 {
		mes "TRUE"
		mes "(MULTILINE IF)"
	}

のように「{」で始めて「}」で終わる部分までを指定します。
(上の例では、 見やすくするためにC言語風に行の最初にTABを入れてあります
が、特に必要なものではありません。ユーザーの見やすいように記述してくだ
さい)

else命令でも複数行の指定ができます。

例 :
	a=10
	if a>5 {
		mes "TRUE"
		mes "(MULTILINE IF)"
	}
	else {
		mes " FALSE"
		mes " (MULTILINE IF)"
	}
	return

ただし、else の後に「{」を記述しなければ複数行にはならないので注意して
ください。

サンプル逆引き (118)

ahtman_kw.hsp
aplkey.hsp
aplkey3.hsp
aplnote.hsp
arraynote.hsp
arusave.hsp
aviplay.hsp
blur_f.hsp
blur_x.hsp
box_fullscr.hsp
cdplay.hsp
cl_getpath.hsp
CLIENT2.hsp
comtest3.hsp
comtest4.hsp
comtest5.hsp
comtest7.hsp
DAYTIME.hsp
defcfunc.hsp
demo.hsp
dircsv.hsp
dirlist.hsp
editor.hsp
facedetect.hsp
facemove1.hsp
facemove2.hsp
folder.hsp
ftime.hsp
fullscr.hsp
fxdir.hsp
fxinfo.hsp
getpath.hsp
grect.hsp
groll.hsp
grotate.hsp
gsquare.hsp
hsp3imp_test.hsp
HTTP.hsp
imgload.hsp
keymove1.hsp
keymove2.hsp
keymove3.hsp
libptr.hsp
loadsave.hsp
mapedit.hsp
mapmove1.hsp
mapmove2.hsp
menubar.hsp
menusample.hsp
mesh_x.hsp
mkpack.hsp
modtest1.hsp
modtest2.hsp
modtest4.hsp
mxatest.hsp
nkfcnv.hsp
note2.hsp
noteadd.hsp
objshadow.hsp
onexit.hsp
onkey.hsp
picload.hsp
regtest2.hsp
robot.hsp
robot_x.hsp
rssload.hsp
rssload.hsp
sample_03_basic.hsp
sample_15_d3wincx.hsp
sample_16_d3setlocal.hsp
sapi_speech.hsp
SERVER2.hsp
settex.hsp
shoot.hsp
skybox.hsp
sndedit.hsp
stick.hsp
terminal.hsp
test1.hsp
test1.hsp
test1.hsp
TEST1.hsp
test1.hsp
test10.hsp
test11.hsp
test12.hsp
test13.hsp
test1f.hsp
test1x.hsp
test2.hsp
test2.hsp
test2.hsp
TEST2.hsp
test2.hsp
test3.hsp
test3.hsp
TEST3.hsp
test3.hsp
test4.hsp
test4.hsp
TEST4.hsp
test5.hsp
test5.hsp
TEST5.hsp
test5.hsp
test6.hsp
test7.hsp
test8.hsp
test9.hsp
typing.hsp
web.hsp
xsample_amano.hsp
xsample_diamond.hsp
xsample_gcube.hsp
xsample_gimbal.hsp
xsample_Rocket.hsp
xsample_shiraho.hsp
xsample_verge.hsp

情報

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