0

ArrayListから特定の数の乱数値を取得したい

final ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

for (int i = 0; i == 4; i++) {

        index = random.nextInt(menuItems.size());
        HashMap<String, String> getitem = menuItems.get(index);
        System.out.println(getitem.get(KEY_NAME));
    }

何も印刷されていません。

コードインループは、ループ外で使用すると機能しますが、複数の値が必要なため、ループを使用しても機能しません。

4

2 に答える 2

5

変化する

for (int i = 0; i == 4; i++) { // start with i beeing 0, execute while i is 4
                               // never true

for (int i = 0; i < 4; i++) {  // start with i beeing 0, execute while i is
                               // smaller than 4, true 4 times

説明:

forループの構造は次のとおりです。

for (initialization; condition; update)

initializationループが開始する前に1回実行されます。conditionループの各反復の前にチェックupdateされ、すべての反復の後に実行されます。

初期化はint i = 0;(1回実行されました)でした。あなたの条件はでしたi == 4、それは偽です、なぜならiです0。したがって、条件はfalseであり、ループはスキップされます。

于 2013-02-16T19:12:25.637 に答える
2

forループの終了条件が壊れています:(4回の反復)または(5回の反復)for (int i = 0; i == 4; i++)である必要があります。for (int i = 0; i < 4; i++)for (int i = 0; i <= 4; i++)

このチュートリアルforでは、ステートメントがどのように機能するかを説明します。

于 2013-02-16T19:12:40.127 に答える