【发布时间】:2016-07-02 15:08:12
【问题描述】:
我有一个代码sn-p如下:
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。
在切换块之前,我记录了 3 个值 status.getStatusCode() 为 0,LocationSettingsStatusCodes.SUCCESS 为 0,LocationSettingsStatusCodes.RESOLUTION_REQUIRED 为 6。
但是两个Log.d 语句都被执行了。我认为问题与我的代码无关,因为我使用 if-else 执行了相同的逻辑。
可能是什么问题?
【问题讨论】:
-
您缺少
break语句。 -
你需要在每个case块的末尾添加
break;语句 -
如果我不添加
break语句,是否会在不评估条件的情况下执行下一个案例? -
没错,就是所谓的“fallthrough”
标签: java switch-statement