赞
踩
分支结构:又被称之为选择结构
选择结构:根据条件成立与否,选择相应的操作。
关系表达式:含有关系运算符的表达式(>,=,<=,!=,==)
逻辑表达式:含有逻辑运算符的表达式(&&,||,!),往往是用来构建复杂的复合条件,
比如:
if(year % 100 == 0 && year % 4 !=0) // 这种既含有关系表达式,又含有逻辑表达式的条件叫做复合条件
常量/变量:值是否非0,取值(0|1)
注意:类似以下写法,是无效的,没有意义的。
- if(x+y) // 编译通过,但是没有实际意义,不建议这样写
- if(5*6)
语法:
- if(条件表达式)
- {
- 语句1;
- }
说明: 条件表达式 成立,执行 语句1 ,否则跳过该分支结构。单分支条件不满足可以不执行。
例子:
- int a = 5;
- if(a < 0)
- {
- a = -a;
- }
- printf("a=%d\n",a);
语法:
- if(条件表达式)
- {
- 语句1;
- }
- else
- {
- 语句2;
- }
说明: 条件表达式 成立,执行 语句1 ,否则执行 语句2 。双分支不管条件是否满足,都要执行。
例子:
- #include <stdio.h>
- int main(void)
- {
- // 申明三个变量来存放计算数
- double x,a,y;
- // 通过键盘录入x,a
- printf("请输入两个数值:\n");
- scanf("%lf,%lf",&x,&a);
- // 检验除数
- if(x != 0 && a != 0)
- {
- y = 1.0/x + 1.0/a;
- }
- else
- {
- y = 10000;
- }
- // 输出
- printf("y=%f\n",y);
- return 0;
- }

语法: 表达式1 ? 表达式2 : 表达式3
说明: ?: 条件运算符,主要可以简化双分支为同一变量赋值的操作。
求值过程:先计算 表达式1 的值,非0,则将 表达式2 的结果作为条件运算符的最终结果;否则将 表达 式3 的结果作为 条件运算符 的 最终结果 。
案例:
- #include <stdio.h>
- int main()
- {
- // 需求:求a,b两个数中最大数
- // 写法1:正常写法
- int a = 5,b = 3;
- if(a > b)
- {
- printf("最大数是:%d\n",a);
- }
- else
- {
- printf("最大数是:%d\n",b);
- }
- // 写法2:省略{}
- int a1 = 5,b1 = 3;
- if(a1 > b1)
- printf("最大数是:%d\n",a1);
- else
- printf("最大数是:%d\n",b1);
- // 写法3:三目运算符
- int a2 = 5,b2 = 3;
- int ret = a2 > b2 ? a2 : b2;
- printf("最大数是:%d\n",ret);
- return 0;
- }

案例:
- #include <stdio.h>
- int main()
- {
- // 需求:输入两个实数,按代数值由 小到大的顺序输出这两个实数。
- // 申明变量,存储操作数
- int a,b;
- printf("请输入两个数值作为操作数:\n");
- scanf("%d,%d",&a,&b);
- // 校验
- // 方式1
- if(a > b)
- {
- printf("由小到大的顺序是:%d,%d\n",b,a);
- }
- else
- {
- printf("由小到达的顺序是:%d,%d\n",a,b);
- }
- // 方式2
- // 创建一个临时变量,用来存放交换信息
- int t = 0;
- if(a > b)
- {
- t = a;
- a = b;
- b = t;
- }
- printf("由小到大的顺序是:%d,%d\n",a,b);
- }

案例:
- #include <stdio.h>
- int main()
- {
- // 需求:输入3个数a,b,c,要求按由小到大的顺序输出这3个数
- // 申明变量,用来存放操作数
- int a,b,c,tmp;
- printf("请输入三个整数:\n");
- scanf("a=%d,b=%d,c=%d",&a,&b,&c);
- // 条件判断
- if(a > b)
- {
- tmp = a;
- a = b;
- b = tmp;
- }
- if(a > c)
- {
- tmp = a;
- a = c;
- c = tmp;
- }
- if(b > c)
- {
- tmp = b;
- b = c;
- c = tmp;
- }
- printf("a,b,c三个数按照由小到大的顺序是:%d,%d,%d\n",a,b,c);
- return 0;
- }

语法:
- if(条件1)
- {
- 语句1;
- }
- else if(条件2)
- {
- 语句2;
- }
- ...
- else
- {
- 语句n+1;
- }
如果只需要一个判断结果,使用 单分支
如果需要两个判断结果,且只能有两个判断结果,使用 双分支
如果需要判断N个结果中的某几个,或者所有,使用 多分支
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。