ich einen Code-Schnipsel haben wie folgt:Java-Schalter passt mehrere Fälle
switch (status.getStatusCode()) {
case LocationSettingsStatusCodes.SUCCESS:
Log.d("Location", "onResult: success");
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
Log.d(TAG, "onResult: resolution needed");
}
status.getStatusCode()
Rückkehr ein int und alle Konstanten sind auch int s.
Vor Schalterblock I log 3 Werte status.getStatusCode()
0, LocationSettingsStatusCodes.SUCCESS
0 und LocationSettingsStatusCodes.RESOLUTION_REQUIRED
ist 6.
Aber beide Log.d
Anweisungen ausgeführt werden. Ich glaube nicht, dass das Problem mit meinem Code zusammenhängt, weil ich dieselbe Logik mit if-else ausgeführt habe.
Was kann das Problem sein?
Sie verpassen 'break' Aussagen. – manouti
Sie müssen eine Anweisung 'break;' am Ende jedes Fallblocks hinzufügen –
Wenn ich '' break'' Anweisungen nicht hinzufüge, wird der nächste Fall ausgeführt, ohne die Bedingung zu bewerten? – Mehrdad