欢迎来到天天文库
浏览记录
ID:40238545
大小:947.00 KB
页数:46页
时间:2019-07-28
《C语言程序设计 王建国 陈惠明 第3章 C程序的控制结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章C程序的控制结构本章讲解1.if语句和switch语句2.while语句、do…while语句和for语句3.break,continue语句4.循环语句的嵌套应用第3章C程序的控制结构3.1分支结构3.2循环结构3.3综合应用3.4本章小结分支结构又称选择结构,是结构化程序设计的三种基本结构之一。在程序设计时,如果需要根据某些条件作出判断,决定不同的处理方式,则要用到分支结构。分支结构能根据条件是否成立自动选择要执行的程序段。3.1分支结构3.1.1关系表达式和逻辑表达式分支结构程序设计的关键是对选择条件的判断,选择条件的描述主要采
2、用关系表达式和逻辑表达式。1.关系运算符与关系表达式如果判断是基于简单的量的比较,那么量之间需要用关系运算符来连接。常用的关系运算符如表3-1所列:表3-1关系运算符及其功能运算符>>=<<===!=功能大于大于等于小于小于等于等于不等于由上述关系运算符连接的表达式称为关系表达式,如x>=0,x<0等。关系表达式的值是一个逻辑值,其值非“真”即“假”。在C语言中没有设置表示逻辑值的数据类型,但规定用数值1代表“真”,用数值0代表“假”;在判断参加运算的对象的真、假时,将非零的数值认作“真”,0认作“假”。如:若a=6,b=2;则表达式a>b
3、成立,值为真,即为1。2.逻辑运算符和逻辑表达式C语言提供了“与”、“或”、“非”三种逻辑运算符,其含义和优先级如表所列。由逻辑运算符连接的表达式称为逻辑表达式,如-2<0
4、
5、3>8,2>0&&7>2等。逻辑表达式的结果也是非“真”即“假”,如5>0&&4>2为真,值为1,逻辑运算规则如表所列。逻辑运算符含义优先级!逻辑非高&&逻辑与中
6、
7、逻辑或低ABA&&BA
8、
9、B!A真真真真假真假假真假假假假假真假真假真真逻辑运算符及其含义和优先级逻辑运算规则编程时注意区分“==”与“=”的不同用法,“==”为关系运算符,用来判断符号两边表达式的值是否
10、相等;而“=”为赋值运算符,用来将“=”右边的表达式值赋给左边的变量。3.1.2if语句在C语言中,常用if语句构成分支结构,if语句根据给定的条件进行判断,决定执行某个分支程序段。if语句的语法形式1:if(<表达式>){语句序列;}语法形式1表示:如果表达式的值为真,则执行语句序列,否则执行if语句后面的程序代码,执行流程如图所示。if语句的语法形式2:if(<表达式>)语句序列1;else语句序列2;语法形式2表示:如果表达式的值为真,则执行语句序列1,否则执行语句序列2,执行流程如图所示。真(非0)假(0)表达式语句序列2语句序列1
11、真(非0)表达式语句序列(a)语法形式1的执行流程(b)语法形式2的执行流程两种if语句的执行流程图【案例3.2】输入任意整数,计算其绝对值。【任务要求】通过对x取值情况的判断,掌握if语句语法形式2的使用方法。输入数据xYesNox>=0输出y的值y=-xy=xNoYesx>=0输入x开始y=-x输出y结束(a)案例3.2的流程图(b)案例3.2的N-S图y=x案例3.2的算法描述【程序详解】/*Example32.c计算绝对值*/#includemain(){intx,y;printf("请输入x的值:");scanf
12、("%d",&x);if(x>=0)//判断条件y=x;elsey=-x;printf("y=
13、x
14、=%d",y);//输出y}(1)在案例3.2中,初学者经常将“if(x>=0)”错误地添加分号,写成“if(x>=0);”,这会导致程序错误。(2)在if语句中,条件判断表达式必须用括号括起来。(3)在C语言中非0表示“真”,0表示“假”,if的条件中如果值为非0则认为“真”。【案例3.3】输入身高与性别,计算一个人的标准体重。程序流程如图所示结束开始YesNoNoYesYesNo身高值越界w=(h-100)*0.9输入身高值h,性别s
15、exw=0h>105&&h<280sex==1sex==2w=(h-105)*0.92性别选择错kgd信息输出w输出w案例3.3的流程图3.1.3条件表达式条件运算符由“?”和“:”组成,是一个三目运算符,即有三个参与运算的量。条件表达式的一般形式为:表达式1?表达式2:表达式3条件表达式的求值规则为:先计算表达式1的值,若为真,则计算表达式2的值并将其作为条件表达式的值,否则计算表达式3的值并将其作为条件表达式的值。【程序详解】/*Example34.c求两个整数中的最大值*/#includemain(){inta,b;
16、printf("请任意输入两个整数,以逗号分隔:");scanf("%d,%d",&a,&b);printf("最大值为%d",a>b?a:b);}if语句与条件表达式可以表
此文档下载收益归作者所有