
控制流版权所有@陈暂保留所有权利陈哲版权所有③陈哲保留所有权利
版 权 所 有 © 陈 哲 保 留 所 有 权 利 版权所有© 陈哲 保留所有权利 控制流 陈哲

>语句和块>选择结构>if-else语句>switch语句>循环结构>while语句>do-while语句>for语句>循环的嵌套版权所有?陈哲保留所有权利>break语句>continue语句>标签和goto语句版权所有陈哲保留所有权利2
版权所有© 陈哲保留所有权利 版权所有 © 陈哲 保留所有权利 2 ➢语句和块 ➢选择结构 ➢if-else语句 ➢switch语句 ➢循环结构 ➢while语句 ➢do-while语句 ➢for语句 ➢循环的嵌套 ➢break语句 ➢continue语句 ➢标签和goto语句

语句和块>语句是以分号结尾的代码,也称为简单语句。例如:a=b;>语句块是用大括号括起来的零个、一个或多个语句,也称为复合语句。例如:版权所有@陈暂保留所有权利c=a;a=b;b=c13
版 权 所 有 © 陈 哲 保 留 所 有 权 利 语句和块 ➢语句是以分号结尾的代码,也称为简单 语句。例如: a=b; ➢语句块是用大括号括起来的零个、一个 或多个语句,也称为复合语句。例如: { c = a; a = b; b = c; } 3

选择结构>在现实生活中,有很多情况需要进行条件判断和行为选择如果遇到红灯,要停车等待。70岁以上的老年人,进入公园免票>两种选择语句:oif-else语句,实现两个分支的选择结构版权所有@陈哲保留所有权利switch语句,实现多个分支的选择结构4
版 权 所 有 © 陈 哲 保 留 所 有 权 利 选择结构 ➢在现实生活中,有很多情况需要进行条 件判断和行为选择 ◦如果遇到红灯,要停车等待 ◦70岁以上的老年人,进入公园免票 ➢两种选择语句: ◦if-else语句,实现两个分支的选择结构 ◦switch语句,实现多个分支的选择结构 4

if-else语句>if-else语句的语法if (expression) statement1[else statement2]表达式expression可以是变量引用表达式、关-系表达式、逻辑表达式等。语句statement1和statement2可以是简单语句、E用大括号括起来的复合语句。3>if-else语句的语义:当表达式的值为“真”所有@陈暂保留所有权利(非0)时执行语句1,否则执行语句2,然后执行if-else语句后面的语句5
版 权 所 有 © 陈 哲 保 留 所 有 权 利 if-else语句 ➢if-else语句的语法: if (expression) statement1 [else statement2] ◦表达式expression可以是变量引用表达式、关 系表达式、逻辑表达式等。 ◦语句statement1和statement2可以是简单语句、 用大括号括起来的复合语句。 ➢if-else语句的语义:当表达式的值为“真” (非0)时执行语句1,否则执行语句2, 然后执行if-else语句后面的语句。 5

>最常用的3种if语句形式:if (表达式)语句1(没有else子句)oif(表达式)语句1else 语句2(有else子句)语句1if(表达式1)else if(表达式2)语句2elseif(表达式3)语句3版权所有@陈暂保留所有权利语句melse if(表达式m)else 语句m+1(在else部分又嵌套了多层的if语句)6
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢最常用的3种if语句形式: ◦if (表达式) 语句1 (没有else子句) ◦if (表达式) 语句1 else 语句2 (有else子句) ◦if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 ┆ else if(表达式m) 语句m else 语句m+1 (在else部分又嵌套了多层的if语句) 6

>例:输入两个实数a和b,如果a大于b,则交换二者的值,然后输出这两个数,>编程思路:用if-else语句的表达式判断a是否大于b。版权所有@陈替保留所有权利
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢例:输入两个实数a和b,如果a大于b, 则交换二者的值,然后输出这两个数。 ➢编程思路:用if-else语句的表达式判断a是 否大于b。 7

#include int main(float a, b, c;scanf("%f,%f",&a, &b) ;if(a>b)1c=a;b;=ab三c;版权所有@陈暂保留所有权printf("%5.2f,%5.2f)n", a, b);0;return8
版权所有© 陈哲保留所有权利 #include int main() { float a, b, c; scanf ("%f,%f ", &a, &b); if (a > b) { c = a; a = b; b = c; } printf("%5.2f,%5.2f \n", a, b); return 0; } 8

>例:求方程ax2 十 bx 十 c = 0的根。由键盘输入a,b,c,如果b2一4ac ≥0,就计算并输出方程的两个实根,否则就输出“方程无实根”的信息版权所有@陈替保留所有权利9
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢例:求方程𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0的根。由键 盘输入a,b,c,如果𝑏 2 − 4𝑎𝑐 ≥ 0,就 计算并输出方程的两个实根,否则就输 出“方程无实根”的信息。 9

#include<stdio.h#include<math.h)int main(1doublea,b,c,disc,xl,x2,p,q;scanf("%lf%lf%lf",&a,&b,&c);printf("Equation: %lfx 2 +%lfx + %lf = O\n",a,b, c);disc = b * b - 4 * a * c;if (disc < o)printf("has no real roots n");else(p =-b / (2.0* a);版权所有陈哲保翻所有权利q = sqrt(disc) / (2.0 * a);xl = p + q;x2=p-q;printf("has real roots:\nxl = %7.2f)nx2 = %7.2f/n", xl, x2);return O;10
版 权 所 有 © 陈 哲 保 留 所 有 权 利 #include #include int main() { double a, b, c, disc, x1, x2, p, q; scanf("%lf%lf%lf", &a, &b, &c); printf("Equation: %lfx^2 + %lfx + %lf = 0\n", a, b, c); disc = b * b - 4 * a * c; if (disc < 0) printf("has no real roots\n"); else { p = -b / (2.0 * a); q = sqrt(disc) / (2.0 * a); x1 = p + q; x2 = p - q; printf("has real roots:\nx1 = %7.2f\nx2 = %7.2f\n", x1, x2); } return 0; } 10