第3章选择结构
目录if语句嵌套的if语句关系运算符与关系表达式逻辑运算符与逻辑表达式条件运算符与条件表达式switch语句216:20
1.if语句if语句通常用来实现双分支选择,它通过判断条件表达式取值(true或false),选择执行相应的语句序列。if语句的一般格式为:if(表达式)语句1[else语句2]if...else的功能是:当表达式为真时(非0值为真,0值为假)执行语句1,否则执行语句2(else子句为可选项,无该选项时与语句2为空语句等价)。语句1和语句2可以是一个简单语句,也可以是一个复合语句,甚至是一条空语句。表达式可以是关系表达式、逻辑表达式,甚至是数值表达式。其执行流程图如图3.1所示。3返回16:20
例3.1:输入一个双精度浮点数,将其向0舍入到整数。向0舍入的含义是“正数向下舍入,负数向上舍入”输入:输入一个双精度浮点数。输出:该双精度浮点数向0舍入的整数。样例输入:3.14样例输出:3#includeiostreamusingnamespacestd;intmain(){ doublea;cina;if(a0)coutint(a)endl;elsecout-int(-a)endl;return0;}416:20
例3.2:输入三个整数,按从小到大的顺序输出这三个数?#includeiostreamusingnamespacestd;intmain(){ inta,b,c,temp; cinabc; if(ab){ temp=a; a=b; b=temp; } if(bc){ temp=b; b=c; c=temp; } if(ab){ temp=a; a=b; b=temp; } coutabcendl; return0;}516:20
2.嵌套的if语句if语句还可通过嵌套实现多分支选择,其一般格式如下:if(条件1)语句1elseif(条件2)语句2elseif(条件3)语句3……注意:if语句可以缺少else选项,但else不能脱离if关键字单独使用。else必须与if关键字配套使用,且else总是与离它最近的还未配对的if匹配。6返回16:20
例3.3:输入一个整数,判断该数是正数、负数还是零。输入:一个整数。输出:该数为正数则输出“positive”,负数则输出“negative”,零则输出“zero”。#includeiostreamusingnamespacestd;intmain(){ inta; cina; if(a0)coutpositiveendl; elseif(a0)coutnegativeendl; elsecoutzeroendl; return0;}716:20
例3.4:龟兔赛跑中,已知乌龟速度为a米每秒,兔子速度为b米每秒,龟兔赛跑的赛程总长度为s米,兔子在比赛中到达终点前的某一时刻睡着了(且仅睡着这一次),耽误了t秒的时间,如果乌龟赢了输出Turtlewin,兔子赢了输出Rabbitwin,否则输出Tie。#includeiostreamusingnamespacestd;intmain(){ inta,b,s,t; cinabst; doubletur=(double)s/a; doublerab=(double)s/b+t; if(turrab)coutTurtlewin; elseif(turrab)coutRabbitwin; elsecoutTie; return0;}816:20
例3.5:输入a、b、c,求一元二次方程ax2+bx+c=0的解。
输入:三个整数a、b、c。
输出:方程ax2+bx+c=0的解(保留两位精度),a=0则输出“Thisisnotaquadraticequation”。若有多个解,则多个解以空格分隔输出。#includecstdio#includecmathintmain(){ doublea,b,c,delta,x1,x2,realpart,imagpart; scanf(%lf%lf%lf,a,b,c); if(fabs(a)=1e-6)printf(Theequationisnotaquadraticequation\n);