〜 スクリプト 〜
変数内の値を別の変数の内容と交換

変数内のテキストを別の変数に移し替える、というのはプログラムの基本動作です。
知らない方は全く初めての人くらいかもしれませんが一応説明しておくと、
HSPの変数には数字又は文字列が入れられるとなっていますが、
数字もしくは文字列しか与えられないというわけではなく変数自体を与えることも出来ます。
変数に数字・文字列しか入っていないわけですから、間接的に数字又は文字列を渡しているわけです。
渡し方もいたって簡単で通常の数字や文字列と同じ様に「A=B」とします。
こうすることで、現在Bに入っている内容をAにセットすることが出来ます。
変数Aの内容と変数Bの内容のお互いを交換したい場合は、通常もう1つ別の変数を使用します。
本当に初めての方はごっちゃになってすぐに理解できない方がいらっしゃるかもしれませんが、
下記の様に退避用変数(ココではC)を使うことで入れ替えられます。
	
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
	A = "変数A"
	B = "変数B"
	mes "変数Aの内容は「" + A + "」"
	mes "変数Bの内容は「" + B + "」"
	C = A ; AをCに退避
	A = B ; BをAにセット
	B = C ; CをAにセット
	mes "変数Aの内容は「" + A + "」"
	mes "変数Bの内容は「" + B + "」"
	stop
もし変数3つを交換したい(A→B、B→C、C→A)のなら、全部で変数4つを使用します。
つまり、交換したい変数数+1個があれば交換できるというわけです(当たり前ですが)。
先ほど、「通常はこのようにする」という書き方をしました。
通常ということは、通常ではない別の書き方もあるということですね。
実は数値である場合は2つ、つまり交換したいお互いの変数だけでも出来てしまうのです。
コレはビット演算を使うもので、先ほどのものより難解になっています。
難解になっているのは、理解することに対して、であって使い方がということではありません。
余分に使いたくない場合はこの手法を使うとよいですが、
後で解読しにくくなってしまうことも想定して使いすぎに注意してください。
	
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
	A = 1122334455
	B = 543210
	mes "変数Aの内容は「" + A + "」"
	mes "変数Bの内容は「" + B + "」"
	A = A ^ B
	B = A ^ B
	A = A ^ B
	mes "変数Aの内容は「" + A + "」"
	mes "変数Bの内容は「" + B + "」"
	stop