Android:中断还是 return 正确?
Android: break or return true?
对于菜单中的项目,用 "break;" 或 "return true;" 哪个更好?答案会随着多个菜单项(多个案例)而改变吗?请解释。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_delete:
taskAdapter.deleteCheckedItems();
**break;** or **return true;**
default:
return super.onOptionsItemSelected(item);
}
return true;
}
...另一个有趣的地方是 break 语句。每个 break 语句终止封闭的 switch 语句。控制流继续执行 switch 块之后的第一条语句。 break 语句是必要的,因为如果没有它们,switch 块中的语句就会失败:匹配的 case 标签之后的所有语句都按顺序执行,而不管后续 case 标签的表达式,直到遇到 break 语句。
根据这个article
break用于退出循环。 return 将退出整个方法 - 用于 return 到调用它的步骤或停止进一步执行(也可以 return 一个值给来电者)。在 case switch 语句中,如果您希望 switch 仍然查看其他 case,请使用 break。使用 return 完成该方法,例如不看其他案例。
对于菜单中的项目,用 "break;" 或 "return true;" 哪个更好?答案会随着多个菜单项(多个案例)而改变吗?请解释。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_delete:
taskAdapter.deleteCheckedItems();
**break;** or **return true;**
default:
return super.onOptionsItemSelected(item);
}
return true;
}
...另一个有趣的地方是 break 语句。每个 break 语句终止封闭的 switch 语句。控制流继续执行 switch 块之后的第一条语句。 break 语句是必要的,因为如果没有它们,switch 块中的语句就会失败:匹配的 case 标签之后的所有语句都按顺序执行,而不管后续 case 标签的表达式,直到遇到 break 语句。 根据这个article
break用于退出循环。 return 将退出整个方法 - 用于 return 到调用它的步骤或停止进一步执行(也可以 return 一个值给来电者)。在 case switch 语句中,如果您希望 switch 仍然查看其他 case,请使用 break。使用 return 完成该方法,例如不看其他案例。