<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>値に名前をつける</title><revhistory><revision><revnumber>10</revnumber><date>2011-12-19 06:52:31</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2011-12-19 06:51:43</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2011-12-16 04:46:05</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2011-12-16 04:44:25</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2010-02-17 03:15:08</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2010-02-17 03:04:41</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2010-02-17 03:02:19</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2010-02-17 02:54:39</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2010-02-17 02:52:05</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2010-02-17 02:48:49</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>値に名前をつける</title><para>値に名前をつけることができます。 名前をつけておくと、後で値の代わりに名前を書くことで対応する値を使うことができます。 </para><para>3.1416 という値にpaiという名前をつけるにはこのように書きます。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ pai = 3.1416;]]></screen></listitem></itemizedlist><para>この後ではpaiと書くと 3.1416のことになります。 </para><para>等号（＝）が使ってありますが、等式とは違います。 </para><itemizedlist><listitem override="none"><para>3.1416 = pai のようには書けません。 </para></listitem></itemizedlist><para>なんども使う値や、決まっている値には名前をつけておくと便利です。 </para><para>書き方を構文図で表すと </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%80%A4%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B?action=AttachFile&amp;do=get&amp;target=namae3.png"/></imageobject><textobject><phrase>namae3.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>のようになります。 </para><para>構文図は文の正しい書き方を表すための図です。 </para><itemizedlist><listitem override="none"><para>矢印に示す順に入り口から出口までたどることで、文法的に正しい結果が得られます。 </para></listitem><listitem override="none"><para>丸で囲まれた記号はそのとおりに書きます。 </para></listitem><listitem override="none"><para>四角で囲まれた部分には対応する内容を書きます。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--><section><title>計算例</title><para>例１ 半径３ｃｍの円の面積を計算しなさい。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ JS> 3 * 3 * 3.1416
 28.2744]]></screen></listitem></itemizedlist><para>例２ 直径１０ｃｍの円の面積を計算しなさい。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ JS> 5 * 5 * 3.1416
 78.539999999999]]></screen></listitem></itemizedlist><para>例３ 直径１２ｃｍ円の周の長さを計算しなさい。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ JS> 12 * 3.1416
 37.6992]]></screen></listitem></itemizedlist><para>問題数が少ないときは、１つ１つ式を入力して計算すればよい。 問題が沢山あるときには名前を使うと便利です。 </para><para>３問まとめてやってみましょう。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ JS> pai = 3.1416；
 3.1416
 JS> 3*3*pai
 28.2744
 JS> 5*5*pai
 78.53999999999
 JS> 12*pai
 37.6992]]></screen></listitem></itemizedlist><para>ちょっとだけ楽でしたね。 </para><para>練習 </para><itemizedlist><listitem override="none"><para>円周率の値として 3.14159265358979 を使って同じ計算をしてみてください。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>名前の付け方</title><para>名前の付け方には約束があります。 これは名前だとすぐに分るようにつけなければなりません。 </para><itemizedlist><listitem override="none"><screen><![CDATA[名前に使える文字は英字（アルファベット大文字小文字合わせて５２種類）と数字（１０種類）です。]]></screen></listitem></itemizedlist><para>名前は１文字以上で、もっと長くてもかまいません。２文字以上のときは空白などを入れないで詰めて書かなくてはいけません。 </para><para>さらに次の条件があります。 </para><itemizedlist><listitem override="none"><para>１） １文字目は英字であること。 </para></listitem><listitem override="none"><para>２） 処理系で使い方が決まっている名前は使えません。 </para></listitem></itemizedlist><para>予約語と言い for, if, then, else, while, do, true, false などがあります。このページの最後に載せておきます。 </para><para>名前はどこか１文字でも異なっていると、違うものとして扱われます。 英字の大文字と小文字は異なる文字として扱われます。 </para><para>名前の付け方を構文図で表すとこのようになります。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%80%A4%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B?action=AttachFile&amp;do=get&amp;target=namae1.png"/></imageobject><textobject><phrase>namae1.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>良い名前の付け方</title><para>１） 何度も使う名前は使いやすい名前にしておきましょう。 </para><para>わかりやすくするには </para><itemizedlist><listitem override="none"><para>適当な長さでつける、 </para></listitem><listitem override="none"><para>意味どおりの名前をつける、 </para></listitem></itemizedlist><para>のが良い方法です。 </para><para>例えば、面積を表すのであれば menseki 、答ならば kotae のように付ければよい。 中途半端に省略した名前を使うのは間違いのもとです。 </para><para>２） その場限りでしか使わないときは、 a,b,c,x,y など意味の無い短い名前にすることもあります。 </para><para>３） 変わらない値（定数など）は大文字でつけます。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>計算の途中で名前をつける</title><para>決まっている値については最初に名前をつけて使うと便利だと説明しました。 名前は、それ以外の場面で使うことが多くあります。 </para><itemizedlist><listitem override="none"><para><emphasis role="strong">計算の途中結果を覚えておく</emphasis>ために使います。 </para></listitem></itemizedlist><para><emphasis role="strong">例</emphasis> </para><itemizedlist><listitem override="none"><para>灰色で示した部分の面積を計算しなさい。正方形の１辺の長さは５ｃｍとする。 </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%80%A4%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B?action=AttachFile&amp;do=get&amp;target=menseki1.png"/></imageobject><textobject><phrase>menseki1.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>灰色の部分の面積は </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%80%A4%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B?action=AttachFile&amp;do=get&amp;target=menseki2.png"/></imageobject><textobject><phrase>menseki2.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>で計算できますね。 </para><para>名前を使わないで計算するとこのようになります。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ JS> 5*5*3.1416
 78.53999999999999
 JS> 78.54/2
 39.27
 JS> 39.27-25
 14.2700000000003]]></screen></listitem></itemizedlist><para>5*5*3.1416で円の面積を計算し、出力された値を２で割り、最後に正方形の面積２５を引いて求めています。 （この問題では１つの式にして 5*5*3.1416/2 - 25 とやれば計算できますが、もっと複雑な問題では分けて計算したほうが楽なことが多い。） </para><para>78.53999999999と表示されたのを78.54 に略して再入力しました。 せっかく計算させたのですから、求まった値をそのまま使いたいものです。 </para><para>値に名前をつけるには </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%80%A4%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B?action=AttachFile&amp;do=get&amp;target=namae3.png"/></imageobject><textobject><phrase>namae3.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>のように書くといいましたが、値の部分に式を書くこともできます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%80%A4%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B?action=AttachFile&amp;do=get&amp;target=namae2.png"/></imageobject><textobject><phrase>namae2.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>この場合、式の値を計算してから、求まった値に名前をつけることになります。 </para><para>名前をつけながら（値を記憶させながら）同じ計算をしてみましょう。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ JS> a = 5*5*3.1416;
 78.53999999999
 JS> b = a/2;
 39.26999999996
 JS> b-25
 14.26999999996]]></screen></listitem></itemizedlist><para>手計算の時でも、あとで使う可能性のある値はどこかにメモしたりしますね。 このとき値だけを 78.54 とメモしておくよりも、en=78.54; と値の意味が分るように書いておくと、後で便利です。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>値が変化する</title><para>値に名前を付け、その名前を使って値を参照できることがわかりました。 計算をするたびに結果に違う名前を付けていくのは、名前を考えるのが大変です。 a1, a2, a3, ..., a90 のようにつければ可能ですが、どの名前がどの値なのか分らなければ名前を付けた意味がありません。 </para><para>もし名前を１つしか使わなかったらどうでしょう。 </para><para>＜実験１＞ 上で行った計算では a と b の２つの名前を使いましたが、a だけを使うことにして次のように入力したらどうなるでしょうか。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ JS> a = 5*5*3.1416;
 JS> a = a/2;
 JS> a-25]]></screen></listitem></itemizedlist><para>実際に行って確かめてみてください。 </para><para>＜実験２＞ それぞれの行の処理を行ったあとで a の表す値がどうなっているか確かめてみましょう。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ JS> a = 5*5*3.1416;
 JS> a
 JS> a = a/2;
 JS> a
 JS> a-25
 JS> a]]></screen></listitem></itemizedlist><para>a とだけ入力すると、a の表している値が表示されます。 実際に行って確かめてみてください。 </para><para>a の表している値が変わっているのがわかります。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>変数</title><para>上の例のように使われる名前は、処理が進むにつれ表している値が変わります。 また、値が途中で変わらなくても、値を覚えておくために使う名前もあります。 これらを含めて変数といいます。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>演習</title><para>問１） 名前として正しいものの例を５つ書きなさい。 </para><itemizedlist><listitem override="none"><para>それぞれ長さが異なる名前にすること。 </para></listitem><listitem override="none"><para>できるだけ良い名前にすること。 </para></listitem></itemizedlist><para>問２） 名前として正しくないものの例を１つ挙げ、その理由を述べなさい。 </para><para>問３） 次の５行を順に行った後での k の値を答えなさい。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ a = 12;
 k = a + 3;
 b = a + 4;
 k = a - b + k;
 a = 5;]]></screen></listitem></itemizedlist><para>問４） 次の図形の（灰色の部分の）面積を求めなさい。 </para><itemizedlist><listitem override="none"><para>図中の数値は対応する辺の長さ(または半径)を表しています。 </para></listitem><listitem override="none"><para>解答は求まった値だけでなく、JS&gt; に対して入力した命令も（行ごとに）順に記述するくこと。 </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E5%80%A4%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B?action=AttachFile&amp;do=get&amp;target=menseki3a.png"/></imageobject><textobject><phrase>menseki3a.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>予約語</title><para>機能が割り当てられているもの、機能が割り当てられるかもしれないもの、使うべきでないもの、が選ばれています。 </para><informaltable><tgroup cols="5"><colspec colname="col_0"/><colspec colname="col_1"/><colspec colname="col_2"/><colspec colname="col_3"/><colspec colname="col_4"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para>abstract</para></entry><entry colsep="1" rowsep="1"><para>boolean</para></entry><entry colsep="1" rowsep="1"><para>break</para></entry><entry colsep="1" rowsep="1"><para>byte</para></entry><entry colsep="1" rowsep="1"><para>case</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>catch</para></entry><entry colsep="1" rowsep="1"><para>char</para></entry><entry colsep="1" rowsep="1"><para>class</para></entry><entry colsep="1" rowsep="1"><para>const</para></entry><entry colsep="1" rowsep="1"><para>continue</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>debugger</para></entry><entry colsep="1" rowsep="1"><para>default</para></entry><entry colsep="1" rowsep="1"><para>delete</para></entry><entry colsep="1" rowsep="1"><para>do</para></entry><entry colsep="1" rowsep="1"><para>double</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>else</para></entry><entry colsep="1" rowsep="1"><para>enum</para></entry><entry colsep="1" rowsep="1"><para>export</para></entry><entry colsep="1" rowsep="1"><para>extends</para></entry><entry colsep="1" rowsep="1"><para>false</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>final</para></entry><entry colsep="1" rowsep="1"><para>finally</para></entry><entry colsep="1" rowsep="1"><para>float</para></entry><entry colsep="1" rowsep="1"><para>for</para></entry><entry colsep="1" rowsep="1"><para>function</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>goto</para></entry><entry colsep="1" rowsep="1"><para>if</para></entry><entry colsep="1" rowsep="1"><para>implements</para></entry><entry colsep="1" rowsep="1"><para>import</para></entry><entry colsep="1" rowsep="1"><para>in</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>instanceof</para></entry><entry colsep="1" rowsep="1"><para>int</para></entry><entry colsep="1" rowsep="1"><para>interface</para></entry><entry colsep="1" rowsep="1"><para>long</para></entry><entry colsep="1" rowsep="1"><para>native</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>new</para></entry><entry colsep="1" rowsep="1"><para>null</para></entry><entry colsep="1" rowsep="1"><para>package</para></entry><entry colsep="1" rowsep="1"><para>private</para></entry><entry colsep="1" rowsep="1"><para>protected</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>public</para></entry><entry colsep="1" rowsep="1"><para>return</para></entry><entry colsep="1" rowsep="1"><para>short</para></entry><entry colsep="1" rowsep="1"><para>static</para></entry><entry colsep="1" rowsep="1"><para>super</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>switch</para></entry><entry colsep="1" rowsep="1"><para>synchronized</para></entry><entry colsep="1" rowsep="1"><para>this</para></entry><entry colsep="1" rowsep="1"><para>throw</para></entry><entry colsep="1" rowsep="1"><para>throws</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>transient</para></entry><entry colsep="1" rowsep="1"><para>true</para></entry><entry colsep="1" rowsep="1"><para>try</para></entry><entry colsep="1" rowsep="1"><para>typeof</para></entry><entry colsep="1" rowsep="1"><para>var</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>void</para></entry><entry colsep="1" rowsep="1"><para>volatile</para></entry><entry colsep="1" rowsep="1"><para>while</para></entry><entry colsep="1" rowsep="1"><para>with</para></entry><entry colsep="1" rowsep="1"/></row></tbody></tgroup></informaltable></section></section></article>