マルチステートメント

本ページには広告が含まれています。

マルチステートメントとは、一つの行に複数の文を含むプログラムの記述方法です。通常、プログラムでは一つの文が一つの行に記述されますが、マルチステートメントを使用することで、複数の文を一つの行にまとめることができます。

構文
;(セミコロン)
引数
戻り値

使い方

変数の初期化

マルチステートメントを使用する場合、複数の文はセミコロン(;)で区切られます。例えば、以下のようなプログラムは、マルチステートメントを使用して、複数の文を一つの行にまとめています。

UWSC
DIM a = 1; DIM b = 2; DIM c = a + b

この例では、3つの変数 a、b、c を定義し、それぞれに値を代入しています。3つの文はすべて一つの行にまとめられていますが、セミコロンで区切られているため、それぞれが別々の文として認識されます。

二次元配列の初期化

二次元配列の初期化は通常の書き方だと以下のようになります。

UWSC
DIM array[3][2] = 2, 5, 12, 14, 38, 64, 451, 34, 47, 384, 83, 48

行結合を使って次元毎に改行すると、以下のように書くことができます。

UWSC
DIM array[3][2] = 2, 5, 12, _
					14, 38, 64, _
					451, 34, 47, _
					384, 83, 48

マルチステートメントを使って書くと、各要素の値がよりわかりやすくなります。

UWSC
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行で短く書けます。以下は通常の書き方。

UWSC
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

以下はマルチステートメントを使った書き方です。

UWSC
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で値を揃えてます。

UWSC
DIM months[] = "睦月", "如月", "弥生", "卯月", "皐月", "水無月", "文月", "葉月", "長月", "神無月", "霜月", "師走"

GETTIME()
PRINT months[G_TIME_MM-1]

以下は月の異称から該当する月を求めるプログラムです。

UWSC
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

分岐の条件式が連続する数値ではない場合、連想配列で書き換えることができます。

UWSC
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["師走"]

マルチステートメントを使用することで、複数の文を一つの行にまとめることができるため、コードの行数を減らすことができます。ただし、可読性が低下し、デバッグが困難になる可能性があるため、適切に使用する必要があります。

複数行に分けるには行結合を使います。