1
switch( 表达式)//这个地方不能加分号,表达式必须是字符型或整型 { case E1 : 语句组 1; //case 与E1(即常量)之间用空格分隔 case E2 : 语句组 2;// case后的常量不能相同且常量后必须加冒号 ……. case En : 语句组 n; [default: 语句组 ;] } 执行过程:
一、计算 二、找case 三、从找到的case开始,往下全部执行 四、若没找到case,则从default开始往下全部执行, 若没default则结束switch语句。 五; 遇见case后面的等式后,有break 就会推出循环。
if是选择结构,有三个形式,它们执行是条件成立只会选一个执行。 第一个:if (表达式) 语句; 第二个:if (表达式) 语句1; else 语句2; 第三个: if ( 表达式1 ) 语句1; else if (表达式2 ) 语句2; else if (表达式3 ) 语句3; …... [ else 语句; ]
switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。所以从效率上来说由于if...else的遍历性,代码执行效率是不高的。 |