Javaでの配列の扱い方について学びました。
学んでいてちょっとビックリだったのが配列の定義の仕方です。
僕は普段配列を指定する時に以下のように定義しています。
int[] a;
どうやら以下のように定義しても大丈夫なようです。
int a[];
なんか慣れていないせいかすごく違和感がありますがOKだそうで。
ただ大多数は int[] a; の方を好んで使っているようですね。
配列を使ってグラフを作ってみる
という訳で入門書あるある?グラフ表示のプログラムです。
作るグラフ数をキーボードから入力しその数分乱数を生成してその数分だけ『*』を表示させるっていう流れです。
また最後には乱数で出力した値を10で割ったときの余剰(余り)を表示しています。
このプログラムで重要な事は配列の長さを取得するには 配列名.length で取得出来ること。
グラフで言う所の左上から右に処理が行われるので処理にはfor文の中に更にfor文が入るところが理解しづらいところかもしれません。
public class IntArrayRand {
public static void main(String args[]){
Random rand = new Random();
Scanner std = new Scanner(System.in);
System.out.print("要素数?:");
int n = std.nextInt();
//配列を生成
int[] a = new int[n];
for(int i = 0; i < a.length; i++){
//配列に適当な値を代入
a[i] = rand.nextInt(10);
}
//縦型
for(int i = 10; i > 0; i--){
for(int j = 0; j < n; j++){
if(a[j] >= i){
//マーク
System.out.print('*');
}else{
System.out.print(' ');
}
// 行間の空白
if(j < n - 1){
System.out.print(' ');
}
}
System.out.println();
}
for(int i = 0; i < n; i++){
System.out.print("-");
// 行間の空白
if(i < n - 1){
System.out.print('-');
}
}
System.out.println();
for(int i = 0; i < a.length; i++){
System.out.print(i % 10);
// 行間の空白
if(i < n - 1){
System.out.print(' ');
}
}
}
}