概述
C语言知识点–选择结构
选择结构中的判定条件
关系运算符与关系表达式
1、关系运算符:< 、 <= 、 > 、 >= 、 == 、 !=
结合方向:从左往右。
优先级低于算术运算符,高于赋值运算符。
注意:由于浮点数的存储方式,避免直接对实数直接做相等或者不等的判断。可以使用固定阈值的方法:fabs(a-b)<le-6.
逻辑运算符与逻辑表达式
1、逻辑运算符: ! (逻辑非,单目)、&& (逻辑与,双目)、|| (逻辑或,双目)
优先级: !>&&> || 。 !的运算次序从右向左。
在"||" 运算中,只要有一个运算量为非零,结果是1. 若已经算出其左边非零,则符号右边的表达式不进行运算。
在"&&" 运算中,只要有一个运算量是零,结果是0. 若已经算出其左边为零,则符号右边的表达式不进行运算。
# 判断一个个字符变量h 是英文字母
'a'< =h && h <='z' ||'A'<= h && h <= 'Z'
#判断某一年是否为闰年
year%4==0 && year%100 !=0 || year%400 ==0
if语句
单分支的if语句
格式:if(表达式)
内嵌语句;
if (a>b);a++;b++; //空语句
if (a>b) {a++;b++;} //都执行
if (a>b) a++;b++; //只执行a++
双分支的if语句
格式: if(表达式)
语句1;
else
语句2;
表达时候的值非0则执行语句1,为0则执行语句2.
语句1和语句2也可以是 if-else 语句,即嵌套语句。
三目运算符(也可实现上面的功能):
表达式1? 表达式2:表达式3
若表达式1的值非零,则表达式2的值将作为整个表达式的值;否则为表达式3的值。
条件运算符的结合方向是自右向左。
//利用条件运算符实现四舍五入
(int)(x+0.5) //要求x>0
(int)(x<0? x-0.5:x+0.5)
#include<stdio.h>
#define pi 3.1415926
//将输入的三个数从大到小进行排序
int main()
{
int a,b,c,max,min;
printf("请输入第一个值:");
scanf("%d",&a);
printf("请输入第二个值:");
scanf("%d",&b);
printf("请输入第三个值:");
scanf("%d",&c);
printf("您输入的三个数为:%dt%dt%dn",a,b,c);
max=a>b&&a>c?a:b>c?b:c;
min=a<b&&a<c?a:b<c?b:c;
printf("从大到小的值依次为:n");
printf("%dt%dt%dn",max,a+b+c-max-min,min);
return 0;
}
嵌套的if语句:
if(表达式)
if(表达式1)
语句1;
else
语句2;
else
if(表达式2)
语句3;
else
语句4;
if的嵌套语句中,每个else总是与他前面的if对应。
嵌套的if语句的变化形式:
if(表达式1) 语句1
else if(表达式2) 语句2
else if (表达式3) 语句3
…
else if (表达式n) 语句n
else 语句n+1
switch语句
简单形式
格式:
switch(表达式){
case 常量表达式1:语句1
case 常量表达式2: 语句2
…
case 常量表达式n: 语句n
default: 语句n+1
}
switch 后的表达式可以是数值型和字符型表达式,case后面的表达式只能是整型常量、字符型常量或符号常量组成的表达式。(注意冒号)
switch后表达式的值不是整数则自动取整,case后面的常量表达式不能有变量或函数。
某个常量表达式(包括至于中间位置的default)一旦匹配后将执行其后的所有语句。
若希望执行完某些操作后退出switch语句,一般可使用break语句。
实现多路开关
格式:
switch(表达式){
case 常量表达式1:语句1;break;
case 常量表达式2: 语句2;break;
…
case 常量表达式n: 语句n;break;
default: 语句n+1
}
#include<stdio.h>
#define pi 3.1415926
int main()
{
//输入年月,输出该月有多少天
int year,month,days;
printf("year=");
scanf("%d",&year);
printf("month=");
scanf("%d",&month);
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 2:
if (year%4 ==0&&year%100!=0 ||year %400==0)
days=29;
else
days=28;
}
printf("%d 年 %d 月 有 %d 天",year,month,days);
}
switch语句的巧用:利用switch语句来解决多分支的问题时,可以利用C语言中关系表达式、逻辑表达式的结果是0或1 的特性进行取值。
...
z=1*(x<2)+2*(2<=x&&x<10)+3*(x>=10);
switch(z){
...
}
最后
以上就是娇气硬币为你收集整理的C语言知识点2--选择结构C语言知识点–选择结构的全部内容,希望文章能够帮你解决C语言知识点2--选择结构C语言知识点–选择结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复