资源描述:
《浙江大学刘加海C语言课件2.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、个人收集整理勿做商业用途第2章程序的控制结构u本章重点1.if语句和用if语句构成的选择结构。2.if语句的嵌套。3.switch语句。4.while循环。5.do~while循环。6.for循环。7.循环的嵌套。u本章难点1.if语句中的条件表达式的理解。2.if与else的配对问题。3.switch语句的程序流向。4.while、do~while、for循环的特点。5.for循环中的执行过程及for循环的变化形式。6.循环嵌套中的执行过程。在程序的编写过程中常常会碰到程序的流向问题,C语言中控制程序流向的语句结构叫控制结构,而控制结构中的条件表达式含有关系运算和逻辑运算,C语言提供了可
2、以进行逻辑判断的选择语句,根据逻辑判断的结果决定程序的不同流程,任何复杂的程序都是由顺序结构、分支结构及循环结构构成。程序的这三种结构是程序设计中最基本的问题,也是程序设计的基础。程序设计中要决定程序的流向、是否重复地执行某项任务等都要涉及到程序的流程控制。本章将重点介绍程序控制结构语句及其使用方法。个人收集整理勿做商业用途2.1程序的分支结构2.1.1 if语句和用if语句构成的选择结构if语句的作用是使程序在运行过程中,根据判断指定的条件是否满足来决定是否执行某操作。if语句的运用能使程序针对不同情况作不同的处理,增加了程序的灵活性。if语句是一种选择结构,它的基本形式有如下三种。1.
3、if选择结构语句格式:if(表达式)语句块这里的语句块可以是简单语句、空语句或复合语句,复合语句用用’{‘开始,符号’}’结束,在逻辑上复合语句作为一条语句来使用。语句的功能:如果表达式的值为真(非0),则执行语句块,否则不执行该语句块。程序流程图如2.1所示。表达式语句块假(0)真(非0)图2.1程序流程图例如学生的成绩grade大于等于60,在屏幕上显示“恭喜你,通过了!”,则可用以下语句描述。if(grade>=60)printf("恭喜你,通过了!n");如果学生的成绩grade大于等于60,除了在屏幕上显示“恭喜你,通过了!”,还要使已取得总学分score加2,则修改以上语句为
4、如下:if(grade>=60){ /* 把多个语句用{}括起来组成一个复合语句*/printf("恭喜你,通过了!");score+=2;}个人收集整理勿做商业用途如果以上语句写成:if(grade>=60)printf("恭喜你,通过了!");/*只能有一条语句属于if语句结构*/score+=2; /*这条语句不在if语句结构中*/其程序流程图变为如图2.2所示,这样使“score加2”操作在学生成绩小于60时也执行了,这与要求不符,程序结果是错的。grade>=60printf("恭喜你,通过了!")假(0)真(非0)score+=2图2.2 程序流程图
5、所以if语句结构中,若需要用多条语句实现操作时,必须把多条语句用{ }括起来组成一条复合语句。同样,在以后介绍的选择结构和循环结构语句中也都有类似的情况。if语句中的表达式(包括循环语句中的表达式)通常是逻辑表达式或关系表达式,但也可以是其他表达式,如赋值表达式等,甚至可以只是一个简单变量。如:if(i)printf("i≠0");判断i的值是否不为0,来决定语句printf("i≠0");是否执行。if((ch=getchar())!='')printf("%c",ch);从键盘输入一个字母赋给ch,如果ch的值不为换行符,执行语句printf("%c",ch);输出该值。思考:定义
6、一字符变量ch并从键盘读入,如为小写字母转化为大写字母后输出,否则什么也不做,程序结束。提示:判断是否为小写字母可写为:(ch>=’a’&&ch<=’z’),小写字母转化为大写字母、输出构成一个复合语句,此复合语句为:{ch-=32;printf(“%c”,ch);}2.if~else选择结构个人收集整理勿做商业用途语句格式:if(表达式)语句块1else 语句块2表达式语句块2语句块1假(0)真(非0)语句的功能:如果表达式的值为真(非0),则执行语句块1,否则执行语句块2。程序流程图如Error!Referencesourcenotfound.2.3所示。图2.3 程序流程图如果根据学
7、生的成绩grade是否大于等于60,决定在屏幕上显示“恭喜你,通过了!”或“很抱歉,没通过!”,则可用语句描述如下:if(grade>=60)printf("恭喜你,通过了!");elseprintf("很抱歉,没通过!");根据编程者的喜好或程序结构方面的考虑,可以修改表达式,调整语句为:if(grade<60)printf("很抱歉,没通过!\n");elseprintf("恭喜你,通过了!");如果也要