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”