ホーム
Java
その他
こんなサイト腐るほどあるのになんでうちに来たの?
来たからには、ちゃんとJavaをマスターしてもらうからね。 
2018/02/03

第6回 配列って便利なんだぜ。


どうも、おとふとです。
今回は、変数の配列について書いていきます。

配列ってのは、ひとつの変数をたくさん複製して番号をつけて使うようなやつ。

って言ってもわかりにくいだろうから、早速例文を書くよ。
これを見てなんとなくイメージできるといいな。


int[] array = {3, 5, 2, 7, 9, 7};
array[0] += array[1] + array[5];
System.out.println(array[0]);
//15と表示される


オッケー?
こんな感じで使います。
宣言の仕方からもう違うよね。
int[] array = {3, 5, 2, 7, 9, 7};
って書いてあるじゃん?
変数の名前は"array"で、arrayの0番目の値が3、1番目の値が5、2番目の値が2っていうふうに見ます。

最初の数は1じゃなくて0だから、間違えないようにね。
んで、変数を宣言したらそれを使ってみる。
arrayの0番目をarray[0]って書く
使い方は配列じゃない場合と同じで、足したり引いたりできる。

それから、宣言の方法がほかにもあって、以下の例文をみてくれ。

int[] array = new int[6];
array[0] = 3;
array[1] = 5;
array[2] = 2;
array[3] = 7;
array[4] = 9;
array[5] = 7;


こんなふうに、先に配列の値を指定して宣言することができる。
で、ちゃんと全て初期化しておくこと。

どっちの書き方も同じ意味なんだけど、状況によって使い分けるから両方覚えておこう。

じゃあ、ほかにも説明することはあるけど、今回も何かアプリを作ってみよう。
今回作るのは、複数の数字を入力して、それを大きい順に並べ替えて出力するものだ。
前回までみたいにBufferedReaderとかは使わないで、もっとシンプルな方法で入力する。
こっちの方が一般的だから、ちゃんと覚えてね。

class Sample{

public static void main(String[] args){

//argsをintにしてiに置き換える
int[] i = new int[args.length];
for(int a = 0; a < args.length; a ++){

i[a] = Integer.parseInt(args[a]);
}

//前後の数字を比べて大きい方を前に出す
for(int a = 0; a < i.length; a ++){

for(int b = 0; b < i.length - 1; b ++){

if(i[b] <= i[b + 1]){

int c = i[b];
i[b] = i[b + 1];
i[b + 1] = c;
}
}
}

//画面に出力する
for(int a : i){

System.out.println(a);
}
}
}

ちょっとややこしいね。

まず、lengthについて。
lengthってのは、配列の要素数だ。
int[] i = new int[args.length];ってので、入力された数字の数の配列をつくる。
argsってのはメインメソッドpublic static void main(String[] args)のargsだ。
コンソールで実行するときに入力できる。red:java Sample 7 5 3 4 0:redみたいな感じで。

で、if(i[b] <= i[b + 1])ってのでiのb番目の数字とb+1番目の数字を比べて、後ろのほうが大きいなら数字を入れ替えるって感じ。
それを数字の数だけ繰り返したら大きい順になるよ。

最後はfor文でひとつずつ表示する。
前に書いたfor文の書き方と違うけど、これは下のリンクで勉強してね。
【Java入門】拡張for文とJava8のforEachの使い方総まとめ | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト

毎回毎回長々と書いてもお互い疲れるし、今回はこの辺にしておきます。

Bye!