<?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>12</revnumber><date>2011-10-12 00:25:22</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>11</revnumber><date>2011-09-26 06:27:06</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2011-09-26 06:23:11</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2011-09-26 06:21:39</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2011-09-26 06:14:43</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2011-09-26 06:12:58</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2011-09-22 02:57:44</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2011-09-22 02:55:27</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2011-09-22 02:48:23</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2011-09-20 02:42:16</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2011-09-20 02:34:43</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2011-09-20 02:33:00</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>配列の宣言と初期化</title><!--rule (<hr>) is not applicable to DocBook--><section><title>配列の宣言</title><para>変数の宣言は次のような形式で行いました。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E9%85%8D%E5%88%97%E3%81%AE%E5%AE%A3%E8%A8%80%E3%81%A8%E5%88%9D%E6%9C%9F%E5%8C%96?action=AttachFile&amp;do=get&amp;target=hensu1.png"/></imageobject><textobject><phrase>hensu1.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>配列も同様の形式で宣言できます。 </para><para>配列の型は </para><itemizedlist><listitem override="none"><para>構成要素の型の後ろに [ ] をつけたものです。 </para></listitem></itemizedlist><para>例 </para><itemizedlist><listitem override="none"><para>double型の配列 x の宣言 </para></listitem><listitem override="none"><para>int型の配列 aとb の宣言 </para><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><![CDATA[ ]]><token><![CDATA[double]]></token><![CDATA[[] ]]><methodname><![CDATA[x]]></methodname><![CDATA[;]]>
<![CDATA[ ]]><token><![CDATA[int]]></token><![CDATA[[] ]]><methodname><![CDATA[a]]></methodname><![CDATA[, ]]><methodname><![CDATA[b]]></methodname><![CDATA[;]]>
</programlisting></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>配列の割り当て</title><para>配列の割り当て(作成)はnewを使って行います。 </para><itemizedlist><listitem override="none"><para>newは新しいオブジェクトを作るときに使います。 </para></listitem></itemizedlist><para>例 </para><itemizedlist><listitem override="none"><para>double型の配列 x に1000個からなる配列を割り当てる。 </para><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><![CDATA[ ]]><token><![CDATA[double]]></token><![CDATA[[] ]]><methodname><![CDATA[x]]></methodname><![CDATA[;]]>
<![CDATA[ ]]><methodname><![CDATA[x]]></methodname><![CDATA[ = ]]><token><![CDATA[new]]></token><![CDATA[ ]]><token><![CDATA[double]]></token><![CDATA[[1000];]]>
</programlisting></listitem><listitem override="none"><para>int型の配列 a に100個からなる配列を、b に200個からなる配列を割り当てる。 </para><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><![CDATA[ ]]><token><![CDATA[int]]></token><![CDATA[[] ]]><methodname><![CDATA[a]]></methodname><![CDATA[, ]]><methodname><![CDATA[b]]></methodname><![CDATA[;]]>
<![CDATA[ ]]><methodname><![CDATA[a]]></methodname><![CDATA[ = ]]><token><![CDATA[new]]></token><![CDATA[ ]]><token><![CDATA[int]]></token><![CDATA[[100];]]>
<![CDATA[ ]]><methodname><![CDATA[b]]></methodname><![CDATA[ = ]]><token><![CDATA[new]]></token><![CDATA[ ]]><token><![CDATA[int]]></token><![CDATA[[200];]]>
</programlisting></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>例</title><para>配列の宣言により、変数 a の値を保持する領域が用意される。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ int[] a;]]></screen></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E9%85%8D%E5%88%97%E3%81%AE%E5%AE%A3%E8%A8%80%E3%81%A8%E5%88%9D%E6%9C%9F%E5%8C%96?action=AttachFile&amp;do=get&amp;target=hairetu1.png"/></imageobject><textobject><phrase>hairetu1.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>new により指定の大きさの配列が作られる。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ new int[100];]]></screen></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E9%85%8D%E5%88%97%E3%81%AE%E5%AE%A3%E8%A8%80%E3%81%A8%E5%88%9D%E6%9C%9F%E5%8C%96?action=AttachFile&amp;do=get&amp;target=hairetu2.png"/></imageobject><textobject><phrase>hairetu2.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>作られた配列オブジェクトのアドレスを変数aに代入することで、aを用いて配列を利用できるようになる。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ int[] a;
 a = new int[100];]]></screen></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E9%85%8D%E5%88%97%E3%81%AE%E5%AE%A3%E8%A8%80%E3%81%A8%E5%88%9D%E6%9C%9F%E5%8C%96?action=AttachFile&amp;do=get&amp;target=hairetu3.png"/></imageobject><textobject><phrase>hairetu3.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>宣言文と実行文 </para><itemizedlist><listitem><para>int[] a; は宣言文です。 </para></listitem><listitem><para>a = new int[100]; は実行文です。 </para></listitem></itemizedlist><para>配列を実際に割り当てるのは実行文の方です。 したがって、配列の大きさは実行時に指定できることが分かります。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>配列の宣言と初期化</title><para>配列の宣言と割り当てを一度に行う構文もあります。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E9%85%8D%E5%88%97%E3%81%AE%E5%AE%A3%E8%A8%80%E3%81%A8%E5%88%9D%E6%9C%9F%E5%8C%96?action=AttachFile&amp;do=get&amp;target=hensu6.png"/></imageobject><textobject><phrase>hensu6.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>例 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><![CDATA[ ]]><token><![CDATA[double]]></token><![CDATA[[] ]]><methodname><![CDATA[x]]></methodname><![CDATA[ = ]]><token><![CDATA[new]]></token><![CDATA[ ]]><token><![CDATA[double]]></token><![CDATA[[1000];]]>
</programlisting></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>配列の初期値</title><para>配列の初期値は次のように記述して指定できます。 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><![CDATA[ ]]><token><![CDATA[int]]></token><![CDATA[[] ]]><methodname><![CDATA[k]]></methodname><![CDATA[ = { 5, 3, 10, 21, 2 };]]>
</programlisting></listitem></itemizedlist><para>この例では、大きさ５の配列が作られ、k[0]=5; k[1]=3; ... に初期化されます。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>補足</title><para>配列の宣言は </para><itemizedlist><listitem override="none"><screen><![CDATA[ int[] a;]]></screen></listitem></itemizedlist><para>ではなく </para><itemizedlist><listitem override="none"><screen><![CDATA[ int a[];]]></screen></listitem></itemizedlist><para>と書く方法もあります。 </para><para>１番目の書き方は<emphasis role="strong">int配列型の変数a</emphasis>、 ２番目の書き方は<emphasis role="strong">int型aの配列</emphasis> と読めます。 どちらでもかまわないのですが、１番目の方がなんとなくオブジェクトっぽくて、 説明の図とあっているように見えませんか。 </para></section></section></article>