マルチステートメントとは、一つの行に複数の文を含むプログラムの記述方法です。通常、プログラムでは一つの文が一つの行に記述されますが、マルチステートメントを使用することで、複数の文を一つの行にまとめることができます。
- 構文
- ;(セミコロン)
- 引数
- 戻り値
使い方
変数の初期化
マルチステートメントを使用する場合、複数の文はセミコロン(;)で区切られます。例えば、以下のようなプログラムは、マルチステートメントを使用して、複数の文を一つの行にまとめています。
DIM a = 1; DIM b = 2; DIM c = a + b
この例では、3つの変数 a、b、c を定義し、それぞれに値を代入しています。3つの文はすべて一つの行にまとめられていますが、セミコロンで区切られているため、それぞれが別々の文として認識されます。
二次元配列の初期化
二次元配列の初期化は通常の書き方だと以下のようになります。
DIM array[3][2] = 2, 5, 12, 14, 38, 64, 451, 34, 47, 384, 83, 48
行結合を使って次元毎に改行すると、以下のように書くことができます。
DIM array[3][2] = 2, 5, 12, _
14, 38, 64, _
451, 34, 47, _
384, 83, 48
マルチステートメントを使って書くと、各要素の値がよりわかりやすくなります。
DIM array[3][2]
array[0][0] = 2; array[0][1] = 5; array[0][2] = 12
array[1][0] = 14; array[1][1] = 38; array[1][2] = 64
array[2][0] = 451; array[2][1] = 34; array[2][2] = 47
array[3][0] = 384; array[3][1] = 83; array[3][2] = 48
SELECT文
SELECT文で分岐した処理が1文のときは1行で短く書けます。以下は通常の書き方。
GETTIME()
SELECT G_TIME_MM
CASE 1
PRINT "睦月"
CASE 2
PRINT "如月"
CASE 3
PRINT "弥生"
CASE 4
PRINT "卯月"
CASE 5
PRINT "皐月"
CASE 6
PRINT "水無月"
CASE 7
PRINT "文月"
CASE 8
PRINT "葉月"
CASE 9
PRINT "長月"
CASE 10
PRINT "神無月"
CASE 11
PRINT "霜月"
CASE 12
PRINT "師走"
SELEND
以下はマルチステートメントを使った書き方です。
GETTIME()
SELECT G_TIME_MM
CASE 1; PRINT "睦月"
CASE 2; PRINT "如月"
CASE 3; PRINT "弥生"
CASE 4; PRINT "卯月"
CASE 5; PRINT "皐月"
CASE 6; PRINT "水無月"
CASE 7; PRINT "文月"
CASE 8; PRINT "葉月"
CASE 9; PRINT "長月"
CASE 10; PRINT "神無月"
CASE 11; PRINT "霜月"
CASE 12; PRINT "師走"
SELEND
分岐の条件式が連続する数値の場合は、配列で書き換えることもできます。配列の添え字は0から始まり、月は1(1月)からなのでG_TIME_MM-1で値を揃えてます。
DIM months[] = "睦月", "如月", "弥生", "卯月", "皐月", "水無月", "文月", "葉月", "長月", "神無月", "霜月", "師走"
GETTIME()
PRINT months[G_TIME_MM-1]
以下は月の異称から該当する月を求めるプログラムです。
DIM month = "師走"
SELECT month
CASE "睦月"; PRINT 1
CASE "如月"; PRINT 2
CASE "弥生"; PRINT 3
CASE "卯月"; PRINT 4
CASE "皐月"; PRINT 5
CASE "水無月"; PRINT 6
CASE "文月"; PRINT 7
CASE "葉月"; PRINT 8
CASE "長月"; PRINT 9
CASE "神無月"; PRINT 10
CASE "霜月"; PRINT 11
CASE "師走"; PRINT 12
SELEND
分岐の条件式が連続する数値ではない場合、連想配列で書き換えることができます。
HASHTBL months
months["睦月"] = 1
months["如月"] = 2
months["弥生"] = 3
months["卯月"] = 4
months["皐月"] = 5
months["水無月"] = 6
months["文月"] = 7
months["葉月"] = 8
months["長月"] = 9
months["神無月"] = 10
months["霜月"] = 11
months["師走"] = 12
PRINT months["師走"]
マルチステートメントを使用することで、複数の文を一つの行にまとめることができるため、コードの行数を減らすことができます。ただし、可読性が低下し、デバッグが困難になる可能性があるため、適切に使用する必要があります。
複数行に分けるには行結合を使います。