1、12021/2/22第3章 C程序结构及控制语句22021/2/22知识点 C程序的3种基本控制结构 顺序结构 选择结构 循环结构32021/2/223.1 C程序的3种基本控制结构 顺序结构 选择结构 循环结构42021/2/221.顺序结构 顺序结构中的各部分按书写顺序执行AB图 3.1 顺序结构52021/2/222.选择结构 也称为分支结构,其执行流程根据判断条件的成立与否选择执行其中的一路分支。cABcAabab(a)(b)图3.2 选择结构62021/2/223.循环结构 循环结构有两种形式:当型循环直到型循环cAab成立cAab不成立当型循环直到型循环图3.3 循环结构72021
2、/2/223.2 顺序结构 顺序结构是C程序默认的执行顺序,也是最简单的程序结构,是构成复杂程序的基础。82021/2/223.2.1 C程序语句 一个C程序由若干语句组成,每个语句以分号作为结束符。C语句可以分为:控制语句 表达式语句 函数调用语句 空语句 复合语句92021/2/221.控制语句(9个)if()else条件语句 switch多分支选择语句 for()循环语句 dowhile()循环语句(直到型)while()循环语句(当型)break终止执行那个switch或循环语句 continue终止本次循环 goto 无条件转向语句 return从函数返回语句注:“()”表示其中的一
3、个判定条件,“”表示内嵌的语句。102021/2/222.表达式语句 表达式语句由表达式加上分号组成 算术表达式语句 n+;赋值表达式语句 x=a+b;a+=5;关系表达式语句 ab;逻辑表达式语句(ab)&(ib?a=1:a=2;逗号表达式语句 a+2,a+3;112021/2/223.函数调用语句 由函数加上分号组成 printf(“世界,你好!”);122021/2/224.空语句 只有分号组成的语句称为空语句132021/2/225.复合语句 把多个语句用大括号括起来组成一个语句称为复合语句 例如t=x;x=y;y=t;142021/2/223.2.2 输入/输出函数 头文件“stdi
4、o.h”字符输出函数 函数原型:putchar(c)功能:向终端输出一个字符 字符输入函数 函数原型:getchar()功能:从键盘输入中得到一个字符152021/2/22 格式化输出函数 函数原型:printf(“格式字符串“,输出项表)功能:产生格式化输出 格式化输入函数 函数原型:scanf(“格式化字符串”,输入项地址表)功能:执行格式化输入162021/2/223.3 选择结构 根据给定的条件是否满足,决定从给定的两个或多个分支中,选择其中一个分支执行 If switch172021/2/223.3.1 if语句 If有3种使用形式 单分支if语句 双分支if语句 多分支if语句18
5、2021/2/22单分支if语句 If(表达式)语句;表达式语句真假192021/2/22双分支if语句 If(表达式)语句1;else 语句2;表达式语句1语句2202021/2/22多分支if语句If(表达式1)语句1else If(表达式2)语句2.else If(表达式n)语句nelse 语句n+1表达式1表达式2表达式n语句n+1语句1真语句2真语句n真假假假假212021/2/223.3.2 switch语句不带break的switch语句switch(表达式)case 常量表达式1:语句1;case 常量表达式2:语句2;.case 常量表达式n:语句n;default:语句n+
6、1表达式=常量表达式1表达式=常量表达式2表达式=常量表达式n语句1真假假假假语句2真语句n真语句n+1222021/2/22带break的switch语句switch(表达式)case 常量表达式1:语句1;break;case 常量表达式2:语句2;break;.case 常量表达式n:语句n;break;default:语句n+1;break;表达式=常量表达式1表达式=常量表达式2表达式=常量表达式n语句1真假假假假语句2真语句n真语句n+1232021/2/223.4 循环结构 循环结构的特点:在给定条件(循环条件)成立时,反复执行某程序段(循环体),直到条件不成立为止。C语言提供5
7、种循环语句:while语句 do-while语句 for语句 goto语句 if语句242021/2/223.4.1 while语句 While(表达式)语句;/*循环体*/当循环体由多个语句组成时,必须用大括号括起来,使其形成复合语句。表达式语句真假图3.9 while循环的执行过程252021/2/223.4.2 do-while语句 do 语句;while(表达式)当循环体由多个语句组成时,必须用大括号括起来,使其形成复合语句。表达式语句真假图3.10 do-while循环的执行过程262021/2/223.4.3 for语句 for(表达式1;表达式2;表达式3)语句;/*循环体*/表
8、达式1表达式2语句表达式3真假图3.11 for循环语句的执行流程272021/2/22“表达式1”和“表达式2”和“表达式3”都是选择项,都可以省略,但分号不能省略。P48 3个表达式都省略for(;)相当于while(1)语句282021/2/223.4.4 break语句和continue语句 Break:强行结束循环,转向循环语句下面的语句。Continue 结束本次循环,继续进行下一次循环 对于for循环,跳过循环体其余语句,转向循环变量增量表达式的计算。对于while和do-while循环,跳过循环体其余语句,转向循环继续条件的判定语句292021/2/22while(表达式1)语
9、句1;If(表达式2)break;语句2;while(表达式1)语句1;If(表达式2)continue;语句2;表达式1语句1表达式1语句2假真真break假图3.12 break表达式1语句1表达式1语句2假真真continue假图3.13 continue302021/2/22 在循环语句中,break从最近的循环体跳出。循环体可以嵌套,但break语句不能同时跳出多层循环。312021/2/223.4.5 循环结构的嵌套 当一个循环体又包含另一个或多个完整的循环时,称为循环嵌套。for循环,while循环和do-while循环可以相互嵌套。循环的嵌套可以多层,但每一层循环在逻辑上必须是
10、完整的。P52两重循环322021/2/223.4.6 goto语句 是一种无条件转移语句,建议最好不要使用。Goto语句会破坏结构化设计中的3种基本结构,并给阅读和理解程序带来困难。Goto 语句标号;语句标号是用户任意选取的标识符,其后跟一个“:”,可以放在程序中的任意语句之前。Goto和标号必须处于同一个函数中,但可以不再一个循环中。332021/2/22 5类语句:表达式语句 函数调用语句 控制语句 空语句 复合语句 3种基本结构 顺序结构 选择结构(if switch)循环结构(while do-while for)3种跳转语句 goto break continue342021/2
11、/22作业 读13章所有例程 9种控制语句的使用 scanf和printf的使用 P57 3.6.1(1)(8)P59 3.6.2(1)(5)不用抄题,只写答案,下周四交352021/2/22scanf printf if语句练习 编写程序,实现以下结果:输入两个整数:12 36 较大的数是36,较小的数是12362021/2/22if switch实现多分支结构 从键盘输入一个整数(从0-6),判断输入的值 输出提示信息:输入一个整数(06)如果为0则输出:今天是星期日 如果为1则输出:今天是星期一 如果为2则输出:今天是星期二 如果为3则输出:今天是星期三 如果为4则输出:今天是星期四 如果为5则输出:今天是星期五 如果为6则输出:今天是星期六 如果不是0-6之间的数字则输出:非法的输入372021/2/22while do-while for 用while do-while for三种循环实现1100所有整数的和382021/2/22编程实现下面的程序流程break 和 continue如果n能被3整除输出提示信息:输入一个整数:从键盘输入一个整数n输出nN是否为0是否是否392021/2/22谢谢40