c语言学习c语言.pptx
《c语言学习c语言.pptx》由会员分享,可在线阅读,更多相关《c语言学习c语言.pptx(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2.if2.if语句的三种形式语句的三种形式形式一:(缺省else子句时)格式:if(表达式)语句当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句,否则直接转向执行下一条。如图4-1所示。例如:if(xy)printf(max=%d,x);真(非0)表达式语句假(0)图4-1 if语句的流程图第1页/共38页形式二:(指定else子句时)格式:if(表达式)语句1 else 语句2当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,然后转向下一条语句;否则,执行语句组2。如图4-2所示。例如:if(xy)printf(max=%d,x);else printf(max
2、=%d,y);真(非0)表达式语句1假(0)语句2图4-2 ifelse语句的流程图第2页/共38页形式三:(形式三:(ifif语句嵌套)语句嵌套)格式:格式:ifif(表达式(表达式1 1)语句语句1 1 else if(else if(表达式表达式2)2)语句语句2 2 else if(else if(表达式表达式3)3)语句语句3 3 .else if(else if(表达式表达式m)m)语句语句m m else else 语句语句n n语句1 1语句2 2语句3 3语句m m语句n n真表达式1 1表达式2 2表达式3 3表达式m m真真真假假假假图4-3 if4-3 ifelseel
3、se语句嵌套的流程图第3页/共38页例如:if(number500)const=0.15;if(number500)const=0.15;else if(number300)const=0.10;else if(number300)const=0.10;else if(number100)const=0.075;else if(number100)const=0.075;else if(number50)const=0.05;else if(number50)const=0.05;else const=0;else const=0;说明:(1)if(表达式)中的“表达式”一般为逻辑表达式或关系
4、表达式,如:if(a=b&x=y)printf(a=b,x=y);也允许是其它类型的数据,如整型、实型、字符型等。如:if(3)printf(O.K.);if(3.5)printf(%f,3.5);if(a)printf(%d,a);第4页/共38页(2)“语句组1”和“语句组2”,可以只包含一个简单语句,也可以是复合语句。复合语句须在其第一个语句前用左花括号“”开头,最后一个语句后以右花括号“”结尾,如:if(a+bc&b+ca&c+ab)s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(area=%8.2f,area);else prin
5、tf(所输入的三边长不能构成三角形);第5页/共38页 【例例4-14-1】输入任意三个整数,求三个数中的最大值。【思思路路导导航航】定义三个变量num1、num2、num3,分别表示从键盘输入的任意三个数,再定义变量max表示三个数中的最大值。首先取一个数预置为max(最大值),然后再用max依次与其余的数逐个比较,如果发现有比max大的,就用它给max重新赋值,比较完所有的数后,max中的数就是最大值。对从3个或3个以上的数中找最大值的处理,上述方法是非常好用的。程序如下:单击此处第6页/共38页/*exam4_1*/*exam4_1*/int main(void)int num1,num
6、2,num3,max;printf(Please input three numbers:);scanf(%d,%d,%d,&num1,&num2,&num3);max=num1;if(num2max)max=num2;if(num3max)max=num3;printf(The three numbers are:%d,%d,%dn,num1,num2,num3);printf(max=%dn,max);return 0;演示屏幕显示运行结果为:Please input three numbers:35,100,85Please input three numbers:35,100,85Th
7、e three numbers are:35,100,85The three numbers are:35,100,85max=100max=100第7页/共38页【例例4-24-2】输入任意三个数输入任意三个数num1num1、num2num2、num3num3,按从,按从小到大的顺序排序输出。小到大的顺序排序输出。【思路导航思路导航】编程思路与例编程思路与例4-24-2基本上相同。不同的是:由于本例基本上相同。不同的是:由于本例题要求将所输入的三个数按从小到大的顺序排序输出,故在比较大小题要求将所输入的三个数按从小到大的顺序排序输出,故在比较大小时要注意小数排在前,大数排在后,位置不符时要
8、交换两数的位置。时要注意小数排在前,大数排在后,位置不符时要交换两数的位置。程序如下:程序如下:/*exam4_2*/*exam4_2*/int main(void)int main(void)int num1,num2,num3,temp;int num1,num2,num3,temp;printf(Please input three numbers:);printf(Please input three numbers:);scanf(%d,%d,%d,&num1,&num2,&num3);scanf(%d,%d,%d,&num1,&num2,&num3);if(num1num2)tem
9、p=num1;num1=num2;num2=temp;if(num1num2)temp=num1;num1=num2;num2=temp;if(num2num3)temp=num2;num2=num3;num3=temp;if(num2num3)temp=num2;num2=num3;num3=temp;if(num1num2)temp=num1;num1=num2;num2=temp;if(num1num2)temp=num1;num1=num2;num2=temp;printf(Three numbers after sorted:%d,%d,%dn,printf(Three number
10、s after sorted:%d,%d,%dn,num1,num2,num3);num1,num2,num3);return 0;return 0;演示屏幕显示运行结果为:Please input three numbers:35,100,85Please input three numbers:35,100,85Three numbers after sorted:35,85,100Three numbers after sorted:35,85,100第8页/共38页3 3ifif语句的嵌套语句的嵌套 if语句允许嵌套。(1 1)ifif语句的嵌套形式语句的嵌套形式 所谓if语句的嵌套是
11、指:if语句中包含另一个if语句,即:在“语句组1”或(和)“语句组2”中,又包含有if语句的情况。if语句的嵌套的一般形式:if(表达式1)if(表达式2)语句组1 /*内嵌if语句*/else 语句组2else if(表达式3)语句组3 /*内嵌if语句*/else 语句组4第9页/共38页(2 2)ifif语句的嵌套与嵌套匹配原则 if语句嵌套时,从最内层开始,else总是与它上面距它最近、且尚未匹配的if配对。为明确匹配关系,避免if与else配对错位的最佳办法是将内嵌的if语句,一律用花括号括起来。为了便于阅读,使用适当的缩进,此时大括号能保证if和else不错位配对,而且适当的缩进
12、便于阅读程序。例如以下两组循环的嵌套因加入大括号后,所表示的含义不同。if()if()if()if()if()if()语句1 1 if()if()语句11else else else else 语句2 2 语句2 2加改变配对关系:第10页/共38页【例4-34-3】有一函数如下,编程实现:输入一个x值,即可输出y值。下面以if语句嵌套的不同的方法来编写程序。方法一:/*exam431*/*exam431*/int main(void)int x,y;scanf(%d,&x);if(x=0)if(x0)y=1;else y=0;else y=-1;printf(x=%d,y=%dn,x,y);
13、return 0;演示屏幕显示运行结果为:-35-35x=-35,y=-1 3535x=35,y=-1 00 x=0,y=0 第12页/共38页方法三:/*exam433*/*exam433*/int main(void)int main(void)int x,y;int x,y;scanf(%d,&x);scanf(%d,&x);y=-1;y=-1;if(x=0)if(x=0)if(x0)y=1;if(x0)y=1;else y=0;else y=0;printf(x=%d,y=%dn,x,y);printf(x=%d,y=%dn,x,y);return 0;return 0;方法四:/*e
14、xam434*/*exam434*/int main(void)int main(void)int x,y;int x,y;scanf(%d,&x);scanf(%d,&x);y=0;y=0;if(x!=0)if(x!=0)if(x0)y=1;if(x0)y=1;else y=-1;else y=-1;printf(x=%d,y=%dn,x,y);printf(x=%d,y=%dn,x,y);return 0;return 0;第13页/共38页4.4.条件运算符?运算符 在if语句中,当“表达式”的值为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值,例如:if(ab)max=a;el
15、semax=b;则可以用条件运算符构成 一个条件表达式来处理,如下所示:max=(ab)?a:b;其中,“(ab)?a:b”是一个条件表达式,其含义是:若条件(ab)成立,则条件表达式取值a;否则,取值b。第14页/共38页(1 1)条件表达式的一般格式:表达式1?表达式2:表达式3例如:int main(void)int x,y;x=80;y=x70?100:0;printf(y=%d,y);return 0;注注意意:条件运算符要求有三个操作对象,称为“三目运算符”(它是C语言中唯一的一个三目运算符)。条件表达式中的“表达式1”、“表达式2”、“表达式3”缺一不可,其类型可以各不相同。屏幕
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学习
限制150内