Java开关匹配多种情况

Java开关匹配多种情况,java,switch-statement,Java,Switch Statement,我有一个代码片段,如下所示: switch (status.getStatusCode()) { case LocationSettingsStatusCodes.SUCCESS: Log.d("Location", "onResult: success"); case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: Log.d(TAG, "onResult: resolution ne

我有一个代码片段,如下所示:

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 s。
在切换块I之前,记录3个值
status.getStatusCode()
为0,
LocationSettingsStatusCodes.SUCCESS
为0,
LocationSettingsStatusCodes.RESOLUTION\u REQUIRED
为6。
但是这两个
Log.d
语句都被执行。我认为问题与我的代码无关,因为我使用if-else执行了相同的逻辑。

有什么问题吗?

您需要一个中断语句

如果没有这一点,这个案子将进入下一个案子

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

缺少
break
语句。您需要添加
break语句如果我不添加
break
语句,是否在不评估条件的情况下执行下一个案例?是的,它被称为“fallthrough”