IF~THEN~ELSEIF~ELSE~ENDIF

プチコン3号 プチコンBIG 

もし~なら…の条件式で処理を分岐

単一行で書く場合 IF exp THEN [ELSEIF exp THEN …] [ELSE …] 複数行で書く場合 IF exp THEN    [ELSEIF exp THEN]    [ELSE]    ENDIF

パラメーター

exp真偽を判定する条件式

解説

IFの後のexp(条件式)を参照し、真(正しい)なら、「THEN」以降の処理を、偽(正しくない)なら「ELSEIF」でさらに条件をつけて分岐するか、どの条件にも合わなければ「ELSE」以降の処理を実行する。

[ELSEIF exp THEN]
の部分は条件文expを変えて何度も書くことができ、いくつもの条件で分岐を設定できる。

「単一行で書く場合」は、ENDIFは省略可能。
「複数行で書く場合」THENの後に改行して、何行も処理を書くことが出来る。その場合、IF文の最後は必ず「ENDIF」を書いて処理を終了しなければなりません。

条件に関しては比較演算子を参照

サンプルコード

Aの値が1なら、Bの値を2にする。一行で書く場合はENDIFは省略可能。
IF A==1 THEN B=2
Aの値が1ならBの値を2にする。そうでなければBを3にする。こちらもENDIF不要。
IF A==1 THEN B=2 ELSE B=3
A$の値によって処理を分ける
IF A$=="tasu" THEN
A=A+B
ELSEIF A$=="hiku" THEN
A=A-B
ELSEIF A$=="kakeru" THEN
A=A*B
ELSEIF A$=="waru" THEN
A=A/B
PRINT "error!
'THENやELSEのあとに改行した場合はENDIFが必要
THENやELSEのあとのGOTO文は、省略形がある。
 
IF A==1 THEN GOTO @LOOP1 '普通の書き方
IF A==1 THEN @LOOP1      'GOTOを省略
IF A==1 GOTO @LOOP1      'THENを省略
IF A==1 THEN @LOOP1 ELSE @LOOP2 'ELSEの場合もGOTO省略可
 
条件文の省略形(詳細は比較演算子を参照)
IF A!=0 THEN B=1 'Aが0以外ならTRUEになるIF文
IF A THEN B=1 'このように書いても同じ。文字列なら空文字以外がTRUEになる。

参照

@ プログラムの任意の場所を示すラベル(名前)
GOTO 指定したラベルの場所にジャンプ
GOSUB 指定したラベルの場所のサブルーチンを実行
RETURN サブルーチンの処理を終了し、元の場所に処理を戻します
ON~GOTO,GOSUB~ idxの値を参照し、指定したラベルにジャンプ
IF~THEN~ELSEIF~ELSE~ENDIF もし~なら…の条件式で処理を分岐
FOR~NEXT 同じ処理をカウント数だけ繰り返す
WHILE~WEND 同じ処理を、指定条件を満たしている間繰り返す
REPEAT~UNTIL 同じ処理を、指定条件を満たすまで繰り返す
CONTINUE ループ処理をスキップし、次に進む
BREAK ループ処理を終了する
END プログラムを終了する
STOP プログラムを中断させる

Facebookコメント