-1

以下の私のコードは、最後のループの問題だけで問題なく動作します。最後のループがどのようにわかるかを少し変更したいですか?? 私のコードは forloop の最後でこの条件 if(i == school5.length()-1) を満たさず、 を に置き換えません。私は何をしますか助けてください

JSONArray school5 = json2.getJSONArray("dish_ingredient");
String concatProduct = "";

for (int i = 0; i < school5.length(); i++) {
    String name = school5.getJSONObject(i).getString("name");
    String subIngredient = school5.getJSONObject(i).getString("sub_ingredients");
    if(i == 0){
        if (subIngredient.equals(""))
        {
            if(i == school5.length()-1)
            {
                concatProduct = " "  + "<b>" + name +  "</b>"+". " +  subIngredient;
            }
            else
            {
                concatProduct = " "  + "<b>" + name +  "</b>"+", " +  subIngredient;
            }
        }
        else
        {
            concatProduct = " "  + "<b>" + name +  "</b>"+": " +  subIngredient; 
        }

    } else {
        if (subIngredient.equals(""))
        {
            concatProduct += " "  + "<b>" + name +  "</b>"+", " +  subIngredient;
        }
        else
        {

            concatProduct += " "  + "<b>" + name +  "</b>"+": " +  subIngredient; 
        }
    }
}
4

3 に答える 3

1

これ

if(i == school5.length()-1)

この条件の前は の場合にのみチェックされるため、真になることはありませんi==0

唯一のケース

if(i == school5.length()-1)

i == 0 & json 配列の長さが 1 の場合は true

于 2013-10-11T12:57:00.553 に答える
1

さらに、「school5.length();」を保持しないことをお勧めします。for ループでパフォーマンスを向上させます。

そういう対策をしたほうがいい

int size = school5.length();
for (int i = 0; i < size; i++) {
   // your loop
}
于 2013-10-11T13:00:37.227 に答える