0

私は10フィールドの平均ラップ計算機を持っています。しかし、テストでは、誰かが通常は実際にはXラップしか走らないと言いましたが、10周(たとえば7周)です。

ifステートメントを使用できると思いますが、少なくとも10個と不器用なコードがたくさんあり、配列/switchステートメントについて正確にはわかりません。これらはすべて可能かもしれないと思いますが、私の経験の低さは、これらの便利なツールをまだ完全には理解していません。

現在のコード:

double tenLapAvgVar = ((lap1Var + lap2Var + lap3Var + lap4Var + lap5Var + lap6Var + lap7Var + lap8Var + lap9Var + lap10Var) / 10);

したがって、基本的に、誰かが1つまたは複数のフィールドを空白のままにした場合、10ではなく入力されたフィールドに基づいて平均を計算します(たとえば、3つのフィールドを空白のままにした場合は、7に基づいて計算します)。あなたたちが提供できるどんな助けでも大いに感謝されるでしょう、ありがとう!

4

2 に答える 2

1

たぶん、10個の異なる変数の代わりに配列を使用したほうがよいでしょう。
次に、forステートメントを使用してそれらを0に初期化します。その後、ユーザーは配列を埋めて、ゼロでない数を数えることができます。
最後に、すべての配列を合計し、以前に計算したカウントで除算します。

于 2012-06-22T16:30:13.783 に答える
1

ArrayList<EditText>オブジェクトとそれを反復して値を合計するメソッドを持つことができます。何かのようなもの:

    public double getLapAverage()
    {
    int noOfCompletedLaps = 0;

    double lapAve = 0;
    double lapsTotal = 0;    

    for(EditText text : textBoxes)
    {
       if(text.getText().toString().length() > 0)
       {
          //psuedo code, and assuming text is numerical
          lapsTotal += Double.parse(text.getText().toString());
          noOfCompletedLaps++;
       }
    }

    if( noOfCompletedLaps > 0)
    {
       lapAve = lapsTotal / noOfCompletedLaps;
    }

 return lapAve;
 }
于 2012-06-22T16:36:22.063 に答える