第6课 分支语句

Posted wanmeishenghuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第6课 分支语句相关的知识,希望对你有一定的参考价值。

if语句:

技术分享图片

 

 

技术分享图片

switch语句分析:

技术分享图片

 

 

 

技术分享图片

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

if和switch使用示例:

 1 #include <stdio.h>
 2 
 3 void f1(int i)
 4 {
 5     if( i < 6 )
 6     {
 7         printf("Failed!
");
 8     }
 9     else if( (6 <= i) && (i <= 8) )
10     {
11         printf("Good!
");
12     }
13     else
14     {
15         printf("Perfect!
");
16     }
17 }
18 
19 void f2(char i)
20 {
21     switch(i)
22     {
23         case c:
24             printf("Compile
");
25             break;
26         
27         case d:
28             printf("Debug
");
29             break;
30         
31         case o:
32             printf("Object
");
33             break;
34             
35         case r:
36             printf("Run
");
37             break;
38         
39         default:
40             printf("Unknown
");
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!
");
 9             break;
10         
11         default:
12             switch( (6 <= i) && (i <= 8) )
13             {
14                 case 1:
15                     printf("Good!
");
16                     break;
17                     
18                 default:
19                     printf("Perfect!
");
20                     break;
21             }
22             break;
23     }
24 }
25 
26 void f2(char i)
27 {
28     if( c == i )
29     {
30         printf("Compile
");
31     }
32     else if( d == i )
33     {
34         printf("Debug
");
35     }
36     else if( o == i )
37     {
38         printf("Object
");
39     }
40     else if( r == i )
41     {
42         printf("Run
");
43     }
44     else
45     {
46         printf("Unknown
");
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课 分支语句的主要内容,如果未能解决你的问题,请参考以下文章

《快乐编程大本营》java语言训练班-第4课:java流程控制

《快乐编程大本营》java语言训练班-第4课:java流程控制

实验四——多分支结构及本章总结

实验四——多分支结构及本章总结

shell if 语句

C语言程序设计第3堂作业