0

このコードが私に与えている理由を理解するのに助けが必要です:

トークン ":" の構文エラー、{ このトークンの後に予想される/行 108,109,110(先頭の label125,label192,label202)/Java 問題

  public void onGPSUpdate(Location paramLocation)
  {
    if (paramLocation != null)
    {
      this.sampleCount = (1 + this.sampleCount);
      label125: int i;
      label192: int j;
      label202: int m;
      if (paramLocation.hasSpeed())
      {
        this.speed = (2.23693629D * paramLocation.getSpeed());
        this.oldLocation = paramLocation;
        this.mAvgSum += this.speed;
        this.speedQ.add(Double.valueOf(this.speed));
        if (this.speedQ.size() > 300)
          this.mAvgSum -= ((Double)this.speedQ.remove()).doubleValue();
        if (!this.speedQ.isEmpty())
          break label324;
        this.mAvg = 0.0D;
        if (this.speed <= this.speedThreshold)
          break label363;
        this.THRESHOLD_STATUS = ("OVER: " + this.speedThreshold + " MPH");
        if (!this.smsControlRunning)
        {
          smsControlOn();
          this.smsControlRunning = true;
        }
        if (!this.blueToothPaired)
          break label346;
        i = 0;
        if (!this.hasBlueTooth)
          break label351;
        j = 0;
        int k = i | j;
        if (!this.phoneControlRunning)
          break label357;
        m = 0;
        label218: if ((k & m) != 0)
        {
          phoneControlOn();
          this.phoneControlRunning = true;
        }
      }
      while (true)
      {
        this.SPEED_STATUS = String.valueOf(this.speed);
        this.COUNT_STATUS = (this.sampleCount + " updates");
        this.MAVG_STATUS = ("mAvg: " + this.mAvg);
        return;
        this.speed = getSpeed(this.oldLocation, paramLocation);
        break;
        label324: this.mAvg = (this.mAvgSum / this.speedQ.size());
        break label125;
        label346: i = 1;
        break label192;
        label351: j = 1;
        break label202;
        label357: m = 1;
        break label218;
        label363: this.THRESHOLD_STATUS = ("UNDER: " + this.speedThreshold + " MPH");
        stopAllServices();
      }
    }
    Toast.makeText(this, "LOCATION NULL", 0).show();
  }

これはおそらく明らかなエラーですが、私は Android 開発と Eclipse の使用に比較的慣れていません。アプリケーションの名前を変更 (リファクタリング) する前の以前のバージョンでは、同じコードが正常に機能していました。これは、私より前にプロジェクトに携わった別のプログラマーによってコーディングされたものであり、ブレーク アンド コンティニューの代わりに case または switch ステートメントを使用してより適切に実行できると思います。私はそれに不満を感じており、アドバイスをいただければ幸いです。

4

1 に答える 1

0

これらのラベルを「実際の」コード行に使用してみてください。変数宣言でそれらを使用しているため、実際のポイントはありません。

次のようなものを使用してください...

  int i;
  int j;
  int m;

  label125: i=0;
  label192: j=0;
  label202: m=0;
  if (paramLocation.hasSpeed())
于 2013-05-23T04:47:18.057 に答える