<<前 [TOP] 次>>
メモ帳を開いて次のプログラムを作ってみましょう。
【Hairetsu.java】
public class Hairetsu { public static void main ( String[] args ) { int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int tmp; for( int i=0; i<a.length; i++ ) { tmp = a[i] * a[i]; System.out.println( a[i] + "*" + a[i] + "=" + tmp ); } } }
配列を扱うには次のようにします。
配列を宣言する。
int a[ ];
配列のためのメモリを確保する。
a = new int[10];
配列宣言と同時に直接値を代入する。
int a[ ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
今回は配列宣言と同時に直接値を代入しています。
小さなプログラムのため、あえて確保するメモリの大きさを指定しませんでした。
大規模なプログラムになると処理スピードに影響が出ますので、必ずメモリの大きさを指定した方が良いです。
メモリを確保するには、new演算子を使います。
配列の宣言とメモリの確保を同時にするには次のように書きます。
int a[ ] = new int[10];
どちらでも好きな方を使用してください。
今回のプログラムでメモリ領域を確保する場合、次のようになります
int a[ ];
a = new int[10];
a[ ] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
また、配列に代入した値を使用する場合は、次のように使用します。
a[0];
a[3];
配列をわかりやすく書くと次のようになります。
int a[] = { a[0],a[1],a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9] };
上記より、a[0]は1であり、a[5]は6、a[9]は10となります。
これを使って計算などを行うには次のようにします。
int tmp = a[5] + a[7];
変数tmpの値は6+8で14となります。
また、配列の数を表すには次のようなやり方があります。
変数名.length
使用例 a.length
今回の a.length は 10になります。
出力結果を見てみましょう。
メモ帳を開いて次のプログラムを作ってみましょう。
【Hairetsu2.java】
public class Hairetsu2 { public static void main ( String[] args ) { int[] data = { 10, 75, 24, 32, 98, 72, 88, 43, 60, 35, 54, 62, 2, 12, 82, }; int sum = 0; for( int i=0; i<data.length; i++ ) { sum += data[i]; } System.out.println( "合計:" + sum ); } }
合計を求めるプログラムです。
sum += data[i];
の意味は
sum = sum + data[i];
と同じ意味です。
繰り返されるごとにdata[0]から足されていき、最後には合計が求められます。
出力結果です。
メモ帳を開いて次のプログラムを作ってみましょう。
【Hairetsu3.java】
public class Hairetsu3 { public static void main( String[] args ) { int[] data = { 10, 75, 24, 32, 98, 72, 88, 43, 60, 35, 54, 62, 2, 12, 82, }; int sum = 0; for( int i=0; i<data.length; i++ ) { sum += data[i]; } float ave = ((float)sum)/data.length; System.out.println( "平均:" + ave ); } }
合計を求めるまではHairetsu2.javaと同じですが、平均を求める式のところが違うので説明します。
変数の計算は同じ型同士でしなくてはなりません。
違う型同士で演算すると思わぬエラーがでたり、予想と違った出力結果になります。
今回は結果を小数点まで求めたかったので、変数aveをfloat型としました。
しかし合計を求める際に変数sumをint型としたため、演算するときに型をそろえる必要が出てきました。
もしint型のまま演算すると答えは49になってしまいます。
そこで次のようにしてsumの型をfloat型にします。
(float)sum
このように型を変えることをキャストといいます。
型をそろえることでfloat同士の演算となりますので小数点以下も求めることができます。
data.lengthは(float)data.lengthとしても良いのですが、必要がないので書いていません。
単にdata.lengthと書けば、javaの方で自動に一番良い型を返してくれます。
またfloatからintなどのバイトの低いほうへキャストするときはデータの型落ちが生じますので気をつけてください。
たとえば49.996などのfloat型をint型にキャストすると、49になってしまいます。
出力結果です。
メモ帳を開いて次のプログラムを作ってみましょう。
【Hairetsu4.java】
public class Hairetsu4 { public static void main( String[] args ) { int[] data = { 10, 75, 24, 32, 98, 72, 88, 43, 60, 35, 54, 62, 2, 12, 82, }; int max = data[0]; for( int i=1; i<data.length; i++ ) { if( data[i] > max ) max = data[i]; } System.out.println( "最大値:" + max ); } }
最大値を求めるプログラムです。
結果を確認してみましょう。
↓↓クリックして頂けると励みになります。