码迷,mamicode.com
首页 > 其他好文 > 详细

第6课 分支语句

时间:2018-08-25 11:21:16      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:角色   语句   技术   替代   switch   col   因此   clu   .com   

if语句:

技术分享图片

 

 

技术分享图片

switch语句分析:

技术分享图片

 

 

 

技术分享图片

case 语句中的值只能是整形或者字符型,并且只能是常量。

if和switch使用示例:

 1 #include <stdio.h>
 2 
 3 void f1(int i)
 4 {
 5     if( i < 6 )
 6     {
 7         printf("Failed!\n");
 8     }
 9     else if( (6 <= i) && (i <= 8) )
10     {
11         printf("Good!\n");
12     }
13     else
14     {
15         printf("Perfect!\n");
16     }
17 }
18 
19 void f2(char i)
20 {
21     switch(i)
22     {
23         case c:
24             printf("Compile\n");
25             break;
26         
27         case d:
28             printf("Debug\n");
29             break;
30         
31         case o:
32             printf("Object\n");
33             break;
34             
35         case r:
36             printf("Run\n");
37             break;
38         
39         default:
40             printf("Unknown\n");
41             break;
42             
43     }
44 }
45 
46 int main()
47 {
48     f1(5);
49     f1(9);
50     f1(7);
51     
52     f2(o);
53     f2(d);
54     f2(e);
55 
56     return 0;
57 }

else语句只与它相邻最近的if匹配。例如,13行的else匹配9行的else if中的if。而第9行的else匹配第5行的if。

 运行结果如下:

技术分享图片

 

if和switch角色对换:

f1函数中的if else判断逻辑换成switch如下:

技术分享图片

 

运行结果如下:

技术分享图片

 

可以看到运行结果没有任何的变化,我们完全可以用switch语句代替if。

f2中的switch替换成if,如下:

技术分享图片

 

运行结果如下:

技术分享图片

运行结果完全不变,因此,if语句在功能上也可以完全替代switch语句。

将上述的替换程序给出如下:

 1 #include <stdio.h>
 2 
 3 void f1(int i)
 4 {
 5     switch( i < 6 )
 6     {
 7         case 1:
 8             printf("Failed!\n");
 9             break;
10         
11         default:
12             switch( (6 <= i) && (i <= 8) )
13             {
14                 case 1:
15                     printf("Good!\n");
16                     break;
17                     
18                 default:
19                     printf("Perfect!\n");
20                     break;
21             }
22             break;
23     }
24 }
25 
26 void f2(char i)
27 {
28     if( c == i )
29     {
30         printf("Compile\n");
31     }
32     else if( d == i )
33     {
34         printf("Debug\n");
35     }
36     else if( o == i )
37     {
38         printf("Object\n");
39     }
40     else if( r == i )
41     {
42         printf("Run\n");
43     }
44     else
45     {
46         printf("Unknown\n");
47     }
48 }
49 
50 int main()
51 {
52     f1(5);
53     f1(9);
54     f1(7);
55     
56     f2(o);
57     f2(d);
58     f2(e);
59 
60     return 0;
61 }

 

小结:

  if语句适用于复杂逻辑进行判断的情形中

  switch语句适用于对离散值进行判断的情形中

  if语句和switch语句在功能上可以相互替换

  if语句对于“按片”分支判断的情形更加简洁

  switch语句对于多分支判断的情形更加简洁

 

第6课 分支语句

标签:角色   语句   技术   替代   switch   col   因此   clu   .com   

原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9532990.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!