人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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]とはどういう意味ですか。
そして、なぜ、
こういう実行結果になったのですか。

●質問者: niseSM
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● うぃんど
ベストアンサー

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


niseSMさんのコメント
ありがとうございます! 僕の質問に沢山答えていただいて・・・

2 ● きゃづみぃ

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


niseSMさんのコメント
そういうことか!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ