case分支语句是一种实现多路分支控制的分支语句。与使用if-else条件分支语句相比,采用case分支语句来实现多路控制会变得更加的方便直观。
case分支语句通常用于对微处理器指令译码功能的描述以及对有限状态机的描述。Case分支语句有“case”、“casez”、“casex”三种形式,这里主要介绍“case”。
case语句的语法格式如下:
case(<控制表达式>)
<分支语句1> : 语句块1
<分支语句2> : 语句块2
<分支语句3> : 语句块3
.......................
<分支语句n> : 语句块n
default: 语句块n+1;
endcase
<控制表达式>代表着对程序流向进行控制的控制信号:各个<分支表达式>则是控制表达式的某些具体状态取值,在实际使用中这些分支项表达式通常是一些
常量表达式:各个“语句”则指定了在各个分支下所要执行的操作,它们也可以
是由单条语句构成,处于最后的以关键字default开头的那个分支项称为“default”分支项,它是可以缺省的。
Case语句的执行过程:
- 当“控制表达式”的取值等于“分支项表达式1”时,执行第一分支项所包含的语句块1。
- 当“控制表达式”的取值等于“分支项表达式2”时,执行第一分支项所包含的语句块2。
...............
(n)当“控制表达式”的取值等于“分支项表达式n”时,执行第一分
支项所包含的语句块n。
在执行了某一分支项内的语句后,跳出case语句结构,终止case语句的执行。
case语句中各个“分支项表达式”的取值必须是互不相同的,否则就会出项矛盾现象。
仿真结果
case语句在执行时,控制表达式和分支项表达式之间进行的比较是一种按进位进行的“全等比较”,也就是说,只有在分支项表达式和控制表达式对应的每一位都是彼此相等的情况下才认为分支项表达式和控制表达式两者是相等的,对应的语句块就会被执行