プログラミング入門:文字列の結合
2008年3月18日
文字列の結合は、VBScriptでは『+』および『&』の両方が使える。これはおそらくVBからの名残だろう。VBでは型の指定ができたので、文字列の結合および、数値の加算を明確に区別することができた。
しかし、VBScriptでは型指定ができない。この環境下では、演算子として『+』を用いた場合、数値加算なのか、数値を文字列に置き換えた後に結合するのかの区別ができないため、エラーを起こすことがある。
一方、『&』を用いた場合、文字列の結合しか意味しないため、数値が代入されている2つ以上の変数を『&』で処理すると、まず数値から文字列への変換が行われ、次に文字列の結合が行われる。
ならば、プログラミングがはじめての人たちに教える場合は、文字列の結合として『&』だけを扱うほうが、混乱が無くてよいはずだ。『+』は学校で習ってきた加算と同じものであり、『&』は別のもの(文字列をくっつけるための接着剤)という捉え方ができるはずだ。
先の記事で悩んでいた電卓のシミュレーションだが、次のコードで実現できることが分かった。
4行目で、『&』の代わりに『+』を用いると、エラーになる。
しかし、VBScriptでは型指定ができない。この環境下では、演算子として『+』を用いた場合、数値加算なのか、数値を文字列に置き換えた後に結合するのかの区別ができないため、エラーを起こすことがある。
一方、『&』を用いた場合、文字列の結合しか意味しないため、数値が代入されている2つ以上の変数を『&』で処理すると、まず数値から文字列への変換が行われ、次に文字列の結合が行われる。
ならば、プログラミングがはじめての人たちに教える場合は、文字列の結合として『&』だけを扱うほうが、混乱が無くてよいはずだ。『+』は学校で習ってきた加算と同じものであり、『&』は別のもの(文字列をくっつけるための接着剤)という捉え方ができるはずだ。
先の記事で悩んでいた電卓のシミュレーションだが、次のコードで実現できることが分かった。
a=0+inputbox("値を一つ入力してください") b=0+inputbox("値をもう一つ入力してください") c=a+b msgbox a & "+" & b & "=" & c
4行目で、『&』の代わりに『+』を用いると、エラーになる。