1 回答
TA贡献1829条经验 获得超13个赞
在表达式 switch 中,对 switch 表达式求值,而不必为常量的 case 表达式从左到右和从上到下求值;第一个等于 switch 表达式的语句触发相关 case 语句的执行;其他情况被跳过。如果没有 case 匹配并且存在“默认” case,则执行其语句。最多可以有一个默认情况,它可能出现在“switch”语句中的任何位置。缺少 switch 表达式等效于布尔值 true。
ExprSwitchStmt = "switch" [ SimpleStmt ";" ] [ Expression ] "{" { ExprCaseClause } "}" .
ExprCaseClause = ExprSwitchCase ":" StatementList .
ExprSwitchCase = "case" ExpressionList | "default" .
在 case 或 default 子句中,最后一个非空语句可能是(可能标记为)“fallthrough”语句,以指示控制应从该子句的末尾流向下一个子句的第一个语句。否则控制流到“switch”语句的末尾。“fallthrough”语句可能作为表达式 switch 的最后一个子句以外的所有语句的最后一个语句出现。
表达式前面可能有一个简单的语句,该语句在计算表达式之前执行。
从上到下评估 case 表达式。case 4并且case 5是false,case 6是true。case 7,case 8和default是false但流入通过下一级条款执行fallthrough。
- 1 回答
- 0 关注
- 511 浏览
添加回答
举报