2016-07-02 8 views
-1

複数のケースに一致します。スイッチブロックの前に
私は、3つの値status.getStatusCode()が0であるログLocationSettingsStatusCodes.SUCCESSは0であるとLocationSettingsStatusCodes.RESOLUTION_REQUIREDは6
ですが、両方Log.d文が実行されます。 if-elseで同じロジックを実行したので、問題は自分のコードに関連しているとは思わない。
何が問題なのですか?Javaのスイッチは、次のように私は、コードスニペットを持って

+0

あなたは 'break'文を逃しています。 – manouti

+0

それぞれのcaseブロックのthendに 'break;'文を追加する必要があります –

+0

'' break''文を追加しないと、条件を評価せずに次のcaseが実行されますか? – Mehrdad

答えて

0

break文が必要です。場合は、次の場合にかかわらず、落ちることなし

....

switch (status.getStatusCode()) { 
    case LocationSettingsStatusCodes.SUCCESS: 
      Log.d("Location", "onResult: success"); 
      break; 
    case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: 
      Log.d(TAG, "onResult: resolution needed"); 
      break; 
} 
関連する問題