当前位置:   article > 正文

嵌入式初学-C语言-七

嵌入式初学-C语言-七

分支结构

分支结构:又被称之为选择结构

概念

选择结构:根据条件成立与否,选择相应的操作。

条件构建

        关系表达式:含有关系运算符的表达式(>,=,<=,!=,==)

        逻辑表达式:含有逻辑运算符的表达式(&&,||,!),往往是用来构建复杂的复合条件,

比如:

 if(year % 100 == 0 && year % 4 !=0) // 这种既含有关系表达式,又含有逻辑表达式的条件叫做复合条件

        常量/变量:值是否非0,取值(0|1)

        注意:类似以下写法,是无效的,没有意义的。

  1. if(x+y) // 编译通过,但是没有实际意义,不建议这样写
  2. if(5*6)

选择结构的形式

单分支

语法:

  1. if(条件表达式)
  2. {
  3. 语句1
  4. }

说明: 条件表达式 成立,执行 语句1 ,否则跳过该分支结构。单分支条件不满足可以不执行。

例子:

  1. int a = 5;
  2. if(a < 0)
  3. {
  4. a = -a;
  5. }
  6. printf("a=%d\n",a);

双分支

语法:

  1. if(条件表达式)
  2. {
  3. 语句1
  4. }
  5. else
  6. {
  7. 语句2;
  8. }

说明: 条件表达式 成立,执行 语句1 ,否则执行 语句2 。双分支不管条件是否满足,都要执行。

例子:

  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. // 申明三个变量来存放计算数
  5. double x,a,y;
  6. // 通过键盘录入x,a
  7. printf("请输入两个数值:\n");
  8. scanf("%lf,%lf",&x,&a);
  9. // 检验除数
  10. if(x != 0 && a != 0)
  11. {
  12. y = 1.0/x + 1.0/a;
  13. }
  14. else
  15. {
  16. y = 10000;
  17. }
  18. // 输出
  19. printf("y=%f\n",y);
  20. return 0;
  21. }

三目运算符

语法: 表达式1 ? 表达式2 : 表达式3

说明: ?: 条件运算符,主要可以简化双分支为同一变量赋值的操作。

求值过程:先计算 表达式1 的值,非0,则将 表达式2 的结果作为条件运算符的最终结果;否则将 表达 式3 的结果作为 条件运算符 的 最终结果 。

案例:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. // 需求:求a,b两个数中最大数
  5. // 写法1:正常写法
  6. int a = 5,b = 3;
  7. if(a > b)
  8. {
  9. printf("最大数是:%d\n",a);
  10. }
  11. else
  12. {
  13. printf("最大数是:%d\n",b);
  14. }
  15. // 写法2:省略{}
  16. int a1 = 5,b1 = 3;
  17. if(a1 > b1)
  18. printf("最大数是:%d\n",a1);
  19. else
  20. printf("最大数是:%d\n",b1);
  21. // 写法3:三目运算符
  22. int a2 = 5,b2 = 3;
  23. int ret = a2 > b2 ? a2 : b2;
  24. printf("最大数是:%d\n",ret);
  25. return 0;
  26. }

案例:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. // 需求:输入两个实数,按代数值由 小到大的顺序输出这两个实数。
  5. // 申明变量,存储操作数
  6. int a,b;
  7. printf("请输入两个数值作为操作数:\n");
  8. scanf("%d,%d",&a,&b);
  9. // 校验
  10. // 方式1
  11. if(a > b)
  12. {
  13. printf("由小到大的顺序是:%d,%d\n",b,a);
  14. }
  15. else
  16. {
  17. printf("由小到达的顺序是:%d,%d\n",a,b);
  18. }
  19. // 方式2
  20. // 创建一个临时变量,用来存放交换信息
  21. int t = 0;
  22. if(a > b)
  23. {
  24. t = a;
  25. a = b;
  26. b = t;
  27. }
  28. printf("由小到大的顺序是:%d,%d\n",a,b);
  29. }

案例:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. // 需求:输入3个数a,b,c,要求按由小到大的顺序输出这3个数
  5. // 申明变量,用来存放操作数
  6. int a,b,c,tmp;
  7. printf("请输入三个整数:\n");
  8. scanf("a=%d,b=%d,c=%d",&a,&b,&c);
  9. // 条件判断
  10. if(a > b)
  11. {
  12. tmp = a;
  13. a = b;
  14. b = tmp;
  15. }
  16. if(a > c)
  17. {
  18. tmp = a;
  19. a = c;
  20. c = tmp;
  21. }
  22. if(b > c)
  23. {
  24. tmp = b;
  25. b = c;
  26. c = tmp;
  27. }
  28. printf("a,b,c三个数按照由小到大的顺序是:%d,%d,%d\n",a,b,c);
  29. return 0;
  30. }

多分支

语法:

  1. if(条件1)
  2. {
  3. 语句1;
  4. }
  5. else if(条件2)
  6. {
  7. 语句2;
  8. }
  9. ...
  10. else
  11. {
  12. 语句n+1;
  13. }

总结

如果只需要一个判断结果,使用 单分支

如果需要两个判断结果,且只能有两个判断结果,使用 双分支

如果需要判断N个结果中的某几个,或者所有,使用 多分支

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/913203
推荐阅读
相关标签
  

闽ICP备14008679号