C语言学习第7篇---C语言三大结构之一判断结构

举报
CodeAllen 发表于 2021/10/30 00:50:55 2021/10/30
【摘要】 知识来源主要是陈正冲老师的《C语言深度解剖》及Delphi Tang老师的《C语言剖析》,有兴趣的朋友可以看我置顶文章获取   if语句分析 1.if语句用于根据条件选择执行语句 2.else不能独立存在且总是与它最近的if想匹配 3.else语句后可以接其他if语句     if语句中...

知识来源主要是陈正冲老师的《C语言深度解剖》及Delphi Tang老师的《C语言剖析》,有兴趣的朋友可以看我置顶文章获取

 

if语句分析

1.if语句用于根据条件选择执行语句

2.else不能独立存在且总是与它最近的if想匹配

3.else语句后可以接其他if语句

 

 

if语句中零值比较的注意点

   ---bool型变量应该直接出现在条件中,不要进行比较

   ---变量和0值进行比较时,0值应该出现在比较符合左边

   ---float型变量不能直接进行0值比较,需要定义精度

 

 

 

switch语句分析

1.switch语句对应单个条件多个分值的情形

2.case语句分值必须有break,否则会导致分支重叠

3.default语句有必要加上,以处理特殊情况

 

 

 

 

switch语句分析

1.case语句中的值只能是整型或者字符型

2.case语句的排列顺序

   ---按照字符的排序个条语句

   ---正常情况放前边,异常情况放在后边(相对不常见,没必要每次都判断)

   ---default语句只用于处理真正的默认情况

 

实验1:if和switch使用实例


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

 

实例2:有趣的角色互换


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

 

 

小结:

1.if语句适用于复杂逻辑判断进行判断的时候

2.switch语句适合对离散值进行判断的情形中

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

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

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

 

 

 

 

 

 

 

文章来源: allen5g.blog.csdn.net,作者:CodeAllen的博客,版权归原作者所有,如需转载,请联系作者。

原文链接:allen5g.blog.csdn.net/article/details/78848655

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。