◆PROCESSING 逆引きリファレンス
カテゴリー:プログラミング
【解説】
プログラミングをしていると、どの言語であっても大抵の場合は配列変数を扱う機会があります。
多くのプログラミング言語では、様々な値を変数に格納します。
変数に「どんな値でも格納できる」という言語もありますが、PROCESSINGでは変数に格納できるデータの種類を決めています。
配列変数とは、同じ型(どのような値を扱うのかが同じタイプ)の変数を、同じ名前でひとまとめにして、変数に連番(添字)を付けて扱えるようにしたものです。
ArrayListやStringも配列変数の仲間になります。PROCESSINGで扱う型の詳細については「PROCESSINGで扱える基本データ型とは」記事を参照してください。ただし、ここではヤヤコシイので、単純な変数を格納する配列変数について考えてみましょう。
洋服をしまうタンスを思い浮かべてください。タンスには(原則として)服しか入れないものとします。タンスの中に「おもちゃ」や「食べ物」を入れてはダメです。あくまで服だけをしまいます(笑)。
こう考えると、タンスは「服」という型のデータを格納する変数と考えることができます。この時、タンスの各引き出しが配列変数になります。この引き出しに0、1、2、3・・・と番号(添字)を割り振り、「XXXくんのタンスの、1番目の引き出しに青いパンツをしまってね」というふうにプログラミングします。
(画像URL:illust-AC 様:かえるWORKSさん、acworksさん)
PROCESSINGはオブジェクト指向言語ですので、配列変数には宣言と確保という2段階があります。
【構文】
●宣言例
1 2 3 4 5 6 7 8 9 10 |
boolean[] bBool; //真偽値 byte[] bByte; //8bit整数 char[] cChar; //16bit Unicode文字 color[] cColor; //カラー値 ARGB、RGB または HSB double[] dDouble; //64bit浮動小数点 10-308乗~10+308乗 float[] fFloat; //32bit浮動小数点 10-38乗 ~10+38乗 int[] iInteger; //32bit整数 ±約21億 short[] sShort; //16bit整数 long[] lLong; //64bit整数 ±約900京 String[] sStrings; //文字列 MAX 2147483647文字 |
●確保例
1 2 3 4 5 6 7 8 9 10 |
bBool = new boolean[10]; bByte = new byte[10]; cChar = new char[10]; cColor = new color[10]; dDouble = new double[10]; fFloat = new float[10]; iInteger = new int[10]; sShort = new short[10]; lLong = new long[10]; sStrings = new String[10]; |
【注意】
colorというのはPROCESSING独自の型です。RGBやHSBなどの色情報を管理する変数になります。
確保例では、各型の変数を10個(0 – 9)確保しています。 new は「新たに確保しなさい」という命令で
変数名 = new 型 [確保数]
と記述します。
宣言と確保(初期化)を同時に行うことも可能です。
1 2 3 4 5 6 7 8 9 10 |
boolean[] bBool2 = { true, false }; byte[] bByte2 = { -128, 127 }; char[] cChar2 = { 'a', 'あ', '\u0041' }; color[] cColor2 = { color(0,0,0), 0xFF001122 }; double[] dDouble2 = { 3.14, 5.63 }; float[] fFloat2 = { 3.14F, 5.13F }; int[] iInteger2 = { -2147483648, 2147483647 }; long[] lLong2 = { -9223372036854775808L, 9223372036854775807L }; String[] sStrings2 = { "abcd", "あいうえ" }; short[] sShort = { -32768, 32767 }; |
【関連記事】
PROCESSINGで扱える基本データ型とは
第4章:ハイスコアを記録する(その4)
配列変数を利用するには(応用編)
●配列変数例1:
1 2 3 4 5 6 |
String[] sStrings = { "計算結果は", "です。" }; int[] iInt = { 100, 200 }; int iKeisan; iKeisan = iInt[0] + iInt[1]; println( sStrings[0] + iKeisan + sStrings[1] ); |
String型の変数とint型変数を、宣言と同時に確保(初期化)しています。
その後で、それぞれの配列変数を添字を指定して取り出し表示しています。
●配列変数例2:
1 2 3 4 5 |
int[] iInt; iInt = new int[10]; iInt[5] = 90; println( iInt[5] ); |
int型の変数を宣言し、その後で10個確保しています。
6番目(0から始まるので)の位置に90を格納して、表示しています。
本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。