次のプログラムの意味が分かりません。
class ForBreak {
public static void main(String[] args) {
int[] data = {5, 3, 7, -1, 4, 2, 9};
for (int i=0; i<data.length; i++) {
if (data[i] < 0) {
break;
}
System.out.println(data[i]);
}
}
}
実行結果は5,3,7と出ます。
このdata[i]とはどういう意味ですか。
そして、なぜ、
こういう実行結果になったのですか。
for (int i=0; i<data.length; i++) {
・int i = 0 は初期設定
・i<data.length はループを繰り返す条件
・i++ は一周回るたびに行う処理
ループ1周目はi==0なのでdata[i]はdata[0]すなわち5
ループ2周目はi++されてi==1に増えてるのでdata[i]はdata[1]すなわち3
ループ3周目はさらにi++されてi==2に増えてるのでdata[i]はdata[2]すなわち7
ループ4周目はさらにi++されてi==3に増えてるのでdata[i]はdata[3]すなわち-1
ただし-1は0より小さいのでif内の処理が行われbreak(ループから脱出)で処理終了
>このdata[i]とはどういう意味ですか。
まずdataというのは
int[] data = {5, 3, 7, -1, 4, 2, 9};
で宣言しているように 配列です。
番号を指定してあげれば、その番号の値を もってくることができます。
つまり data[i]というのは、dataの中のiの変数の値の番号の内容ということになります。
にiが 0でしたら
data[i]は 5になります。
>実行結果は5,3,7と出ます。
プログラムを見ると
if (data[i] < 0) {
break;
こう書いてあります。
data[i]の内容が 0より小さいときは break;しろということです。
dataの中身は
int[] data = {5, 3, 7, -1, 4, 2, 9};
となっています。
順番に見ていくと -1のところで 0より小さくなっていますので
そこまで実行されることになります。
よって結果は 5, 3, 7となるのです。