您的位置:首页 > 编程语言 > C语言/C++

C语言随堂笔记---条件分支结构

2016-06-26 22:07 381 查看

1.关系表达式

 1.返回结果“真”--非0值和“假”--0值    2.关系逻辑运算符(<,>,<=,>=,==,!=)      使用关系运算符构建的关系表达式的结果为两种:0和1,    分别代表假和真字符型数据也可以进行关系运算    3.字符型的关系运算      字符型数据本质上也是一种整型数据      在比较时字符型使用其对应的ASCII码值进行比较      使用字符型和整型进行比较时同样使用字符对应的ASCII值跟整型数据进行比较eg.
int i=10;
double b=9;
printf("i>b:%d\n",i>b);//0为假,非0为真
char c1='A';
char c2='a';
printf("c1>c2:%d\n",c1>c2);
int num1=20;
int result=c2<=num1;
printf("c2<=num1:%d\n",result);
printf("i==b:%d\n",i==b);//虽然类型不同,但值相同

2.逻辑运算符

需要多个条件叠加判断时需要使用逻辑运算;     逻辑运算可以构建复杂的关系表达式;     逻辑运算包括三种:        与运算(&&)          表达式1 && 表达式2        或运算(||)          表达式1 || 表达式2        非运算(!)          ! 表达式     逻辑运算时将非0作为真,0作为假处理;eg.
//闰年
int year;
printf("请输入一个年份:\n");
scanf("%d",&year);
if((year%4==0&&year%100!=0)||year%400==0)
printf("%d为闰年\n",year);
else
printf("%d不为闰年\n",year);
printf("-----------------------------------\n");

运算符的优先级

运算符结合性
( )从左到右
一元运算符,包括一元-,++,--,!从右到左
*,/,%从左到右
+,-,二元从左到右
<,<=,>,>=从左到右
==,!=从左到右
&&从左到右
(或)从左到右
+=,-=,*=,/=从右到左
逻辑运算短路因为逻辑运算有短路情况,所以造成这种结果,短路情况有以 下两种:
与运算时:表达式1&&表达式2,如果表达式1为假,表达式2不再被执行      或运算时:表达式1||表达式2,如果表达式1为真,表达式2不再被执行
eg.
    //短路int i=0,j=5;int rst=i++&&j++;printf("rst=%d,i=%d,j=%d",rst,i,j);printf("-----------------------------------\n");

程序分支

C语言中分支包括:if分支和switch分支两种;if分支语句中包含三种情况:
if分支语句       if..else分支语句       if..elseif..else分支链 
* 当分支语句只有一条时,花括号可以省略,如果分支语句有多条需要使用花括号* switch分支:break跳出循环;若没加break,case符合条件执行完,会接着往下执行eg.
    //例,ifint i;printf("请输入一个整数:\n");scanf("%d",&i);if(i<0)i=-i;printf("i=%d\n",i);printf("-----------------------------------\n");//例,if...elsechar isRain;printf("今天是否有雨(Y/N):\n");scanf("%c",&isRain);if(isRain=='Y'||isRain=='y')printf("下雨了,需要带雨具!\n");elseprintf("没下雨,不需要带雨具!\n");例,if...else if...elsedouble temp;printf("请输入今天的天气:\n");4000scanf("%d",&temp);if(temp<15)printf("今天天气寒冷!请多穿衣服!\n");else if(temp>=15&&temp<29)printf("温度适中,可随意穿\n");elseprintf("高温炎热\n");printf("-----------------------------------\n");//例,成绩double t;printf("请输入成绩!\n");scanf("%lf",&t);if(t>=90&&t<=100){printf("您的成绩优秀!\n");}else if(t>=80&&t<90){printf("您的成绩良好!\n");}else if (t>=60&&t<80){printf("您的成绩OK!\n");}else if (t>=0&&t<60){printf("您的成绩弱爆了!\n");}else{printf("输入的成绩范围0-100!\n");}

三元运算符

表达式1 ? 表达式2 : 表达式3
 判断表达式1的结果:      如果为真,整个三元运算表达式的结果为表达式2的值;      如果为假,整个三元运算表达式的结果为表达式3的结果
   eg.
    //...?... : ...三元运算符int country;char gender;printf("您是不是中国人(1/0):\n");scanf("%d%c",&country,&gender);printf("您的性别('F/M')\n");scanf("%c",&gender);double Height=country==1?gender=='F'?1.60:1.70:gender=='F'?1.60:1.75;printf("Height%.2f\n",Height);
随堂笔记为个人学习笔记,若有错误,望指出,谢谢!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言