値に名前をつける

値に名前をつけることができます。 名前をつけておくと、後で値の代わりに名前を書くことで対応する値を使うことができます。

3.1416 という値にpaiという名前をつけるにはこのように書きます。

pai = 3.1416;

この後ではpaiと書くと 3.1416のことになります。

等号（＝）が使ってありますが、等式とは違います。

3.1416 = pai のようには書けません。

なんども使う値や、決まっている値には名前をつけておくと便利です。

書き方を構文図で表すと

のようになります。

構文図は文の正しい書き方を表すための図です。

矢印に示す順に入り口から出口までたどることで、文法的に正しい結果が得られます。

丸で囲まれた記号はそのとおりに書きます。

四角で囲まれた部分には対応する内容を書きます。

計算例

例１ 半径３ｃｍの円の面積を計算しなさい。

JS> 3 * 3 * 3.1416 28.2744

例２ 直径１０ｃｍの円の面積を計算しなさい。

JS> 5 * 5 * 3.1416 78.539999999999

例３ 直径１２ｃｍ円の周の長さを計算しなさい。

JS> 12 * 3.1416 37.6992

問題数が少ないときは、１つ１つ式を入力して計算すればよい。 問題が沢山あるときには名前を使うと便利です。

３問まとめてやってみましょう。

JS> pai = 3.1416； 3.1416 JS> 3*3*pai 28.2744 JS> 5*5*pai 78.53999999999 JS> 12*pai 37.6992

ちょっとだけ楽でしたね。

練習

円周率の値として 3.14159265358979 を使って同じ計算をしてみてください。

名前の付け方

名前の付け方には約束があります。 これは名前だとすぐに分るようにつけなければなりません。

名前に使える文字は英字（アルファベット大文字小文字合わせて５２種類）と数字（１０種類）です。

名前は１文字以上で、もっと長くてもかまいません。２文字以上のときは空白などを入れないで詰めて書かなくてはいけません。

さらに次の条件があります。

１） １文字目は英字であること。

２） 処理系で使い方が決まっている名前は使えません。

予約語と言い for, if, then, else, while, do, true, false などがあります。このページの最後に載せておきます。

名前はどこか１文字でも異なっていると、違うものとして扱われます。 英字の大文字と小文字は異なる文字として扱われます。

名前の付け方を構文図で表すとこのようになります。

良い名前の付け方

１） 何度も使う名前は使いやすい名前にしておきましょう。

わかりやすくするには

適当な長さでつける、

意味どおりの名前をつける、

のが良い方法です。

例えば、面積を表すのであれば menseki 、答ならば kotae のように付ければよい。 中途半端に省略した名前を使うのは間違いのもとです。

２） その場限りでしか使わないときは、 a,b,c,x,y など意味の無い短い名前にすることもあります。

３） 変わらない値（定数など）は大文字でつけます。

計算の途中で名前をつける

決まっている値については最初に名前をつけて使うと便利だと説明しました。 名前は、それ以外の場面で使うことが多くあります。

計算の途中結果を覚えておく ために使います。

例

灰色で示した部分の面積を計算しなさい。正方形の１辺の長さは５ｃｍとする。

灰色の部分の面積は

で計算できますね。

名前を使わないで計算するとこのようになります。

JS> 5*5*3.1416 78.53999999999999 JS> 78.54/2 39.27 JS> 39.27-25 14.2700000000003

5*5*3.1416で円の面積を計算し、出力された値を２で割り、最後に正方形の面積２５を引いて求めています。 （この問題では１つの式にして 5*5*3.1416/2 - 25 とやれば計算できますが、もっと複雑な問題では分けて計算したほうが楽なことが多い。）

78.53999999999と表示されたのを78.54 に略して再入力しました。 せっかく計算させたのですから、求まった値をそのまま使いたいものです。

値に名前をつけるには

のように書くといいましたが、値の部分に式を書くこともできます。

この場合、式の値を計算してから、求まった値に名前をつけることになります。

名前をつけながら（値を記憶させながら）同じ計算をしてみましょう。

JS> a = 5*5*3.1416; 78.53999999999 JS> b = a/2; 39.26999999996 JS> b-25 14.26999999996

手計算の時でも、あとで使う可能性のある値はどこかにメモしたりしますね。 このとき値だけを 78.54 とメモしておくよりも、en=78.54; と値の意味が分るように書いておくと、後で便利です。

値が変化する

値に名前を付け、その名前を使って値を参照できることがわかりました。 計算をするたびに結果に違う名前を付けていくのは、名前を考えるのが大変です。 a1, a2, a3, ..., a90 のようにつければ可能ですが、どの名前がどの値なのか分らなければ名前を付けた意味がありません。

もし名前を１つしか使わなかったらどうでしょう。

＜実験１＞ 上で行った計算では a と b の２つの名前を使いましたが、a だけを使うことにして次のように入力したらどうなるでしょうか。

JS> a = 5*5*3.1416; JS> a = a/2; JS> a-25

実際に行って確かめてみてください。

＜実験２＞ それぞれの行の処理を行ったあとで a の表す値がどうなっているか確かめてみましょう。

JS> a = 5*5*3.1416; JS> a JS> a = a/2; JS> a JS> a-25 JS> a

a とだけ入力すると、a の表している値が表示されます。 実際に行って確かめてみてください。

a の表している値が変わっているのがわかります。

変数

上の例のように使われる名前は、処理が進むにつれ表している値が変わります。 また、値が途中で変わらなくても、値を覚えておくために使う名前もあります。 これらを含めて変数といいます。

演習

問１） 名前として正しいものの例を５つ書きなさい。

それぞれ長さが異なる名前にすること。

できるだけ良い名前にすること。

問２） 名前として正しくないものの例を１つ挙げ、その理由を述べなさい。

問３） 次の５行を順に行った後での k の値を答えなさい。

a = 12; k = a + 3; b = a + 4; k = a - b + k; a = 5;

問４） 次の図形の（灰色の部分の）面積を求めなさい。

図中の数値は対応する辺の長さ(または半径)を表しています。

解答は求まった値だけでなく、JS> に対して入力した命令も（行ごとに）順に記述するくこと。

予約語

機能が割り当てられているもの、機能が割り当てられるかもしれないもの、使うべきでないもの、が選ばれています。

abstract	boolean	break	byte	case
catch	char	class	const	continue
debugger	default	delete	do	double
else	enum	export	extends	false
final	finally	float	for	function
goto	if	implements	import	in
instanceof	int	interface	long	native
new	null	package	private	protected
public	return	short	static	super
switch	synchronized	this	throw	throws
transient	true	try	typeof	var
void	volatile	while	with