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条件を満たしていなければその行の命令を実行

サンプル逆引き (337)

(HSP3) sample1 [標準的なキャプチャサンプル].hsp
(HSP3) sample1 [標準的なキャプチャサンプル]_x64.hsp
(HSP3) sample10 [HSPサンプルのブロック崩しをMP4で出力].hsp
(HSP3) sample10 [HSPサンプルのブロック崩しをMP4で出力]_x64.hsp
(HSP3) sample11 [MP4形式でキャプチャを保存する].hsp
(HSP3) sample11 [MP4形式でキャプチャを保存する]_x64.hsp
(HSP3) sample2 [すべてのキャプチャデバイスをキャプチャする].hsp
(HSP3) sample2 [すべてのキャプチャデバイスをキャプチャする]_x64.hsp
(HSP3) sample3 [キャプチャ動画に画像をミキシングして表示する].hsp
(HSP3) sample3 [キャプチャ動画に画像をミキシングして表示する]_x64.hsp
(HSP3) sample4 [モノクロでキャプチャする].hsp
(HSP3) sample4 [モノクロでキャプチャする]_x64★.hsp
(HSP3) sample5 [AVI形式でキャプチャを保存する].hsp
(HSP3) sample5 [AVI形式でキャプチャを保存する]_x64★.hsp
(HSP3) sample6 [デバイスが対応する解像度を列挙する].hsp
(HSP3) sample6 [デバイスが対応する解像度を列挙する]_x64.hsp
(HSP3) sample7 [解像度を変更してキャプチャする].hsp
(HSP3) sample7 [解像度を変更してキャプチャする]_x64.hsp
(HSP3) sample8 [Webカメラ版 バーコード・QRコード読み取り].hsp
(HSP3) sample8 [Webカメラ版 バーコード・QRコード読み取り]_x64.hsp
(HSP3) sample9 [ファイル読み込み版 バーコード・QRコード読み取り].hsp
(HSP3) sample9 [ファイル読み込み版 バーコード・QRコード読み取り]_x64.hsp
01_Sample_SMART.hsp
02_Sample_HDDStatus.hsp
03_Sample_SelfAdminRun.hsp
04_Sample_NotepadAdminRun.hsp
05_Sample_HDDInfo.hsp
06_Sample_HDDHealth.hsp
50_コールバック関数(EnumWindows).hsp
addline.hsp
ahtman_kw.hsp
aplkey.hsp
aplkey3.hsp
aplnote.hsp
appconfig.hsp
arduino_test1.hsp
arduino_test2.hsp
arduino_test3.hsp
arduino_test4.hsp
arduino_test5.hsp
arraynote.hsp
arusave.hsp
aviplay.hsp
battle.hsp
block1.hsp
block2.hsp
block3.hsp
block3.hsp
block3.hsp
block3_ad.hsp
bmpsave.hsp
buffer.hsp
button_test.hsp
calcsheet.hsp
cdplay.hsp
celput.hsp
celputm.hsp
cl_getpath.hsp
clbk_gwlwndpproc.hsp
client2.hsp
cnvaxis.hsp
cnvaxis.hsp
cnvsrc.hsp
comtest3.hsp
comtest4.hsp
comtest5.hsp
comtest7.hsp
csvnote.hsp
csvstr.hsp
customshader.hsp
d3m.hsp
d3m_techdemo.hsp
daytime.hsp
defcfunc.hsp
demo.hsp
dirbox.hsp
dircsv.hsp
doukutu.hsp
drop.hsp
drop_dish.hsp
ease_test3.hsp
editor.hsp
emit_sample1.hsp
emit_sample2.hsp
emit_sample3.hsp
eprim.hsp
es_test10.hsp
es_test2.hsp
es_test3.hsp
es_test4.hsp
es_test5.hsp
es_test6.hsp
es_test7.hsp
es_test8.hsp
es_test9.hsp
facedetect.hsp
facemove1.hsp
facemove2.hsp
feedback.hsp
filedialog.hsp
folder.hsp
ftime.hsp
fullscr.hsp
fxdir.hsp
fxinfo.hsp
gblur.hsp
get_binary.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_dishtest.hsp
hsptv_test2.hsp
hsptv_test3.hsp
htmlput.hsp
http.hsp
http_test1.hsp
http_test2.hsp
https_download.hsp
imgload.hsp
itunes_mon.hsp
joystick1.hsp
joystick2.hsp
joystick3.hsp
keymove1.hsp
keymove2.hsp
keymove3.hsp
keymove4.hsp
kick.hsp
libptr.hsp
light_test1.hsp
light_test2.hsp
light_test3.hsp
light_test4.hsp
light_test5eff.hsp
loadsave.hsp
mapedit.hsp
mapmove1.hsp
mapmove2.hsp
menusample.hsp
meshmap.hsp
meshmap2.hsp
meshmap3.hsp
meshmap4.hsp
meshmap5.hsp
meshmap6.hsp
meshmap7.hsp
mini_chr.hsp
mkexe.hsp
mkpack.hsp
modtest1.hsp
modtest2.hsp
modtest4.hsp
mtouch.hsp
multimon.hsp
multitouch1.hsp
multitouch2.hsp
multitouch3.hsp
nkfcnv.hsp
noframe.hsp
note2.hsp
noteadd.hsp
obaqhg1.hsp
obaqhg2.hsp
obaqhg3.hsp
obaqme.hsp
obaqtest.hsp
objfade.hsp
objshadow.hsp
objsort.hsp
omedetai.hsp
onexit.hsp
onkey.hsp
particle.hsp
physics_1.hsp
physics_2.hsp
picload.hsp
pipe.hsp
poker.hsp
posteffect.hsp
pronama2.hsp
pronama3.hsp
pronama4.hsp
pronama5.hsp
pronama_box.hsp
qvbtest.hsp
regtest2.hsp
rssload.hsp
sample01.hsp
sample02.hsp
sample03.hsp
sample04.hsp
sample05.hsp
sample06.hsp
sample07.hsp
sample08.hsp
sample09.hsp
sample10.hsp
sample11.hsp
sample12.hsp
sample13.hsp
sample14.hsp
sample15.hsp
sample16.hsp
sample17.hsp
sample18.hsp
sample19.hsp
sample21.hsp
sample22.hsp
sample24_DVDPlayer.hsp
sample25_SelectAudioDevice.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
SampleDiskInfo.hsp
sampview.hsp
sapi_speech.hsp
sendmail.hsp
server2.hsp
settex.hsp
shoot.hsp
skybox.hsp
sndedit.hsp
stick.hsp
strex_test1.hsp
swfload.hsp
tamadot.hsp
tamadot_dish.hsp
tamane1.hsp
tamane1.hsp
tamane2.hsp
tamane2.hsp
tamane3.hsp
tamane3.hsp
tamane4.hsp
tamane_jump.hsp
tamane_s.hsp
tamane_s_dish.hsp
tamane_tree.hsp
terminal.hsp
test1.hsp
test1.hsp
test1.hsp
test1.hsp
test1.hsp
test1.hsp
test10.hsp
test10.hsp
test10.hsp
test11.hsp
test11.hsp
test12.hsp
test12.hsp
test13.hsp
test13.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
test4.hsp
test4.hsp
test4.hsp
test4.hsp
test5.hsp
test5.hsp
test5.hsp
test5.hsp
test6.hsp
test6.hsp
test6.hsp
test6.hsp
test7.hsp
test7.hsp
test7.hsp
test8.hsp
test8.hsp
test8.hsp
test9.hsp
test9.hsp
test9.hsp
test_compile.hsp
test_editor.hsp
test_gettag.hsp
test_layerobj.hsp
test_mml.hsp
test_status.hsp
tile.hsp
tof2.hsp
typing.hsp
usbiotest.hsp
utftest3.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
zipfile_test1.hsp
zipfile_test2.hsp

情報

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