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 の後に「{」を記述しなければ複数行にはならないので注意してください。

関連項目

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

サンプル逆引き (215)

addline.hsp
ahtman_kw.hsp
aplkey.hsp
aplkey3.hsp
aplnote.hsp
arraynote.hsp
arusave.hsp
aviplay.hsp
block1.hsp
block2.hsp
block3.hsp
block3.hsp
blur_f.hsp
blur_x.hsp
bmpsave.hsp
box_fullscr.hsp
button_test.hsp
calcsheet.hsp
cdplay.hsp
celput.hsp
cl_getpath.hsp
client2.hsp
cnvaxis.hsp
cnvsrc.hsp
comtest3.hsp
comtest4.hsp
comtest5.hsp
comtest7.hsp
daytime.hsp
defcfunc.hsp
demo.hsp
dircsv.hsp
doukutu.hsp
editor.hsp
elastic.hsp
elm2d_edit.hsp
emit_sample1.hsp
emit_sample2.hsp
emit_sample3.hsp
eprim.hsp
facedetect.hsp
facemove1.hsp
facemove2.hsp
filedialog.hsp
folder.hsp
ftime.hsp
fullscr.hsp
fxdir.hsp
fxinfo.hsp
gblur.hsp
getpath.hsp
grect.hsp
groll.hsp
grotate.hsp
grotate.hsp
gsquare.hsp
gsquare.hsp
hgview.hsp
hidmon_test1.hsp
hidmon_test2.hsp
hsp3imp_test.hsp
hspcmp.hsp
hsplogo.hsp
hsptv_test2.hsp
hsptv_test3.hsp
htmlput.hsp
http.hsp
imgload.hsp
itunes_mon.hsp
keymove1.hsp
keymove2.hsp
keymove3.hsp
keymove4.hsp
kick.hsp
libptr.hsp
loadsave.hsp
mapedit.hsp
mapmove1.hsp
mapmove2.hsp
menusample.hsp
mesh_x.hsp
meshmap.hsp
meshmap2.hsp
meshmap3.hsp
meshmap4.hsp
meshmap5.hsp
meshmap6.hsp
meshmap7.hsp
mkpack.hsp
modtest1.hsp
modtest2.hsp
modtest4.hsp
multitouch1.hsp
multitouch2.hsp
multitouch3.hsp
mxatest.hsp
nkfcnv.hsp
noframe.hsp
note2.hsp
noteadd.hsp
obaqhg1.hsp
obaqhg2.hsp
obaqhg3.hsp
obaqme.hsp
objshadow.hsp
objsort.hsp
omedetai.hsp
onexit.hsp
onkey.hsp
picload.hsp
pipe.hsp
poker.hsp
qvbtest.hsp
regtest2.hsp
robot.hsp
robot_x.hsp
rssload.hsp
sample3.hsp
sample4.hsp
sample_01_basic.hsp
sample_02_memolite.hsp
sample_02_Rect_Ellip.hsp
sample_03_basic.hsp
sample_03_Color_Brush.hsp
sample_04_Penstyle.hsp
sample_05_DrawText.hsp
sample_06_TransMode.hsp
sample_07_Curve.hsp
sample_08_Copy.hsp
sample_09_imagetest.hsp
sample_15_d3wincx.hsp
sample_16_d3setlocal.hsp
sample_17_d3setlocal_shadow.hsp
sample_19_getmouse.hsp
sampview.hsp
sapi_speech.hsp
sendmail.hsp
server2.hsp
settex.hsp
shoot.hsp
skybox.hsp
sndedit.hsp
stick.hsp
swfload.hsp
terminal.hsp
test1.hsp
test1.hsp
test1.hsp
test1.hsp
test1.hsp
test1.hsp
test1.hsp
test10.hsp
test10.hsp
test11.hsp
test12.hsp
test13.hsp
test1f.hsp
test1x.hsp
test2.hsp
test2.hsp
test2.hsp
test2.hsp
test2.hsp
test2.hsp
test2.hsp
test3.hsp
test3.hsp
test3.hsp
test3.hsp
test3.hsp
test3.hsp
test4.hsp
test4.hsp
test4.hsp
test4.hsp
test4.hsp
test5.hsp
test5.hsp
test5.hsp
test5.hsp
test5.hsp
test6.hsp
test6.hsp
test6.hsp
test7.hsp
test7.hsp
test7.hsp
test7.hsp
test8.hsp
test8.hsp
test8.hsp
test9.hsp
test9.hsp
test9.hsp
tile.hsp
tof2.hsp
twitter_timeline.hsp
typing.hsp
usbiotest.hsp
volsamp.hsp
wave.hsp
web.hsp
xsample_alphapaint.hsp
xsample_alphastg.hsp
xsample_amano.hsp
xsample_Astro.hsp
xsample_diamond.hsp
xsample_gcube.hsp
xsample_gcube.hsp
xsample_gimbal.hsp
xsample_Rocket.hsp
xsample_shiraho.hsp
xsample_verge.hsp
yopparai.hsp

情報

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