-1
我有一個代碼片段如下:Java的開關匹配多個案件
switch (status.getStatusCode()) {
case LocationSettingsStatusCodes.SUCCESS:
Log.d("Location", "onResult: success");
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
Log.d(TAG, "onResult: resolution needed");
}
status.getStatusCode()
返回一個int和所有的常量是int類型爲好。
開關塊之前我登錄3個值status.getStatusCode()
是0,LocationSettingsStatusCodes.SUCCESS
是0和LocationSettingsStatusCodes.RESOLUTION_REQUIRED
是6
但兩者Log.d
語句被執行。我不認爲這個問題與我的代碼有關,因爲我用if-else執行了相同的邏輯。
可能是什麼問題?
你錯過了'break'語句。 – manouti
你需要在每個case塊的最後添加一個'break;'語句 –
如果我沒有添加break語句,那麼下一個例子是否會在沒有評估條件的情況下執行? – Mehrdad