Javaの繰り返し処理についてです。

次のプログラムの意味が分かりません。
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]とはどういう意味ですか。
そして、なぜ、
こういう実行結果になったのですか。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/10/25 20:56:48

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

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(ループから脱出)で処理終了

id:niseSM

ありがとうございます!
僕の質問に沢山答えていただいて・・・

2013/10/25 20:56:22

その他の回答1件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149ここでベストアンサー

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(ループから脱出)で処理終了

id:niseSM

ありがとうございます!
僕の質問に沢山答えていただいて・・・

2013/10/25 20:56:22
id:taknt No.2

回答回数13539ベストアンサー獲得回数1198

>この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となるのです。

id:niseSM

そういうことか!

2013/10/25 20:54:13

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません