int[] score;//配列を宣言
score = new int[5];//scoreという変数に配列を生成(new)
int kobakos = score.length;//配列の数
System.out.println("要素の数:"+kobakos);
System.out.println("要素の数:"+score.length);//直にこう書くこともできる
電車の何両目かが「インデックス」(または添え字)
先頭車両は「0号車」
intと配列のときは扱いが違うらしい。
int[] score = new int[]{30,20,10};
int[] score2 = {30,20,10};
この2つは同じ記述
拡張for
public class Main152{
public static void main(String[] args){
//点数管理プログラム配列版
int[] score = {20,30,40,50,80};
for(int value : score){//拡張for文
System.out.println(value);
}
}
}
>for文の少し違った使い方として拡張for文(for-each文)という使い方ができるようになりました。これは配列やコレクションと呼ばれる複数の要素を持っているものから全ての要素に含まれる値を順に取り出して処理するために使われます。配列やコレクションについては今後別のページで詳しく解説しますのでこの時点ではそういった文が用意されていることだけ覚えておいて下さい。
書式は次の通りです。
for (データ型 変数名: コレクション){
実行する文1;
実行する文2;
...
}
以前に解説したfor文と同じですが括弧の中はまったく別のものとなっています。この形式では値を順に取り出したい配列やコレクションと、取り出した値を格納する変数の二つをセミコロン(;)ではなくコロン(:)で区切って記述します。繰り返される回数は配列やコレクションに含まれている値の数だけなので条件式は必要ありませんし変化式も必要ありません。
https://www.javadrive.jp/start/for/index8.html
第一引数:変数名を入れる
第二引数:まわす配列名
→
配列の中身をひとつひとつ取り出して変数に入れる
さっきの場合だと
配列(score)の中身をひとつひとつ取り出して変数(value)に入れる
1回目のループでは1つめを取り出してvalueに入れている
2回目では2つめを取り出してvalueに入れている
取り出せるものがなくなったらforを抜ける。
次回:
5章のメソッドもやりますよ。
なお教科書通りに入力したらエラーが出るよ
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 20 out of bounds for length 5
at Main152.main(Main152.java:7)
.ArrayIndexOutOfBoundsException
配列の参照外の番号書いてますよというエラー。
配列は0から始まっているので5この車両の最終車両は4になる。
4章終わったら
ペーパーテスト
教科書見てもwebみてもなんでもいい。