1

単純なアプリケーションのニーズに合わせて、以下のコードを変更しようとしています。私は初心者なので、プロの男性にとって明らかなことを理解するのが難しい場合があります。sum += p.price; を取得したい。ボタンを2回クリックすると結果が2倍になるため、ループから外れます。: が条件演算子であることはわかっていますが、このステートメントの意味を理解できません (Product p : boxAdapter.getBox())。おそらく、誰かが説明したり、do に移行したりすると、理解しやすくなります。

public void showResult(View v) {

    String result = "Items in the basket: ";
    String sum_text = "For the sum: ";

    for (Product p : boxAdapter.getBox()) {

        if (p.box) {
            result += "\n" + p.name + "   " + p.price;
        }

        sum += p.price;

    }

    Toast.makeText(this, result, Toast.LENGTH_LONG).show();
    Toast.makeText(this, sum_text + sum, Toast.LENGTH_LONG).show();
}

すみません、簡単な質問でお手数をおかけして。

4

2 に答える 2

1
for (Product p : boxAdapter.getBox())

このループは、製品タイプの boxAdapter.getBox() コレクションを繰り返し処理し、各インスタンスを p に格納して、単純な for ループに変換し、次のように変更します。

for(int i=0; i<boxAdapter.getBox().size(); i++)
{
    Product p=boxAdapter.getBox().get(i);
}
于 2012-10-25T12:52:43.383 に答える
0

for (Product p : boxAdapter.getBox())の結果のすべての Product オブジェクトを反復処理することを意味しますboxAdapter.getBox()

boxAdapter.getBox()たとえば、2 つの Product オブジェクトを含むリストを返す場合、ループは 2 回実行され、1 回目はpリストの最初の項目、2 回目はリストの 2 番目の項目になります。

于 2012-10-25T12:51:08.647 に答える