选择结构程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

选择结构程序设计

概述:根据某种条件成立与否而采用不同的程序段进行处理为选择结构选择判断语句为if 和switch

1关系运算与逻辑运算

1关系运算:

(1)关系运算符有6种比较两个量大小的运算符

> >= < <= !=(不等于)==(等于)

说明:①关系运算都是双目运算,且结合性为自左向右结合(即自左向右运算)

②在关系运算中< <= > >=的优先级相同且高于==和!= ,==与!=的优先级相同。

③==与=不同的例如

A==b是判断变量A与变量b的值是否相等

A=b是将变量b的值赋给变量A

(2)关系表达式:用关系运算符将两个表达式连接起来的式子,两边的表达式可以是多种形式。

说明:①关系表达式的运算结果是逻辑值为1或者0。1代表逻辑真,0代表逻辑假。当关系表达式成立时,结果是1;反之,为零。关系运算的结果也可以参与到其他类型数据的运算。

②关系运算的结果只有1或0两种可能

如设a=1,b=6,c=7 求下列表达式的值:

C>a+b

C=b>a

第一个结果是0

第二个结果是1因为这里有赋值运算与关系运算两种。关系运算的优先级大于赋值,等价于c=(b>a),将b>a的结果1赋值给c。

③当关系运算符两边的数据类型不同时,系统将自动进行转换。转换的规则为前面的类型转换规则。

④关系运算主要用于选择结构中的条件判断。

2逻辑运算

(1)逻辑运算符

关系表达式只适用于单一的表达条件,一些复合条件就需要用逻辑运算符将各个表达式连接在一起。

有3种

运算符名称示例说明说明

!逻辑非! a a非单目运算符

&& 逻辑与a&&b a与b 双目运算符

||逻辑或a||b a或b 双目运算

说明:

①&& || 自左向右结合!自右向左结合。

②在逻辑运算符中,优先级为!大于&&大于||

③各个运算符的优先级顺序为:

!>算数运算符>关系运算符>&&>||>赋值运算符

A>b&&c>d等价于(a>b)&&(c>d)

!b==c||d

A+b>c&&x+yc)&&((x+y)

注意优先级,结合性。

(2)逻辑表达式:用逻辑运算符将关系表达式或者逻辑值连接起来的式子。

说明

①参与逻辑运算的量即逻辑符号两边的量为零或者非零数(可以不是1),0表示逻辑假,非零数代表逻辑真。这里非零数可以是任何类型的数据,如字符型,实型或指针型,但最终是以0和非零来判定他们的真或假。

②逻辑运算的结果是一个逻辑值,真或假用1或0代表。

a b !a !b a&&b a||b

非零非零0 0 1 1

非零0 0 1 0 1

0 非零 1 0 0 1

0 0 1 1 0 0

③在逻辑表达式中,并不是所有的逻辑运算符都要执行,有时只需执行一部分就可以得出逻辑表达式的最后结果。如x&&y&&z只有当x为真是才需要向下进行判断y的真假,若x为假,则系统不在向下进行了,直接得出表达式的值为假即0

例如:设a=1,b=3,c=5,d=8,x=1,y=1,则表达式(x=a>b)&&(y=c>d)执行后x与y的值为多少?因为a>b的值为零,赋给了x即&&左面的值为零则立即判断出该表达式的值为假即0,y=c>d没有被执行。

④与关系表达式相比,逻辑表达式更多用于复合条件,也用于条件判断语句中。

⑤关系运算符不可以连用,如数学式1010&&y<30

2 if语句(条件分支语句)与嵌套if语句

C语言中提供了3种形式的if语句:

不含else的if语句

if…else语句

if…else…if语句

除了上面基本的if语句外还有嵌套if语句

一基本的if语句

1 不含else的if语句

(1)格式:

if(表达式)语句1;

(2)执行过程:首先计算()中的表达式的值,若值为非零,则执行语句1,然后脱离整个if 选择结构,继续执行if语句的下一个语句;若值为0则不执行语句1,直接脱离整个if选择结构,直接执行if语句的下一个语句。

流程图为:

语句1

if

假(0)

真(非零)

语句2

语句3

(3)说明:①if关键字后面必须加圆括号,语句后面一定要加;

②()内的表达式可以是关系表达式,逻辑表达式,赋值表达式,变量,字符常量,整型常量,浮点型等任何数值类型的表达式。判断时先计算该表达式的值,有非零与零两种结果。如:if(a=3)c=10; 这里表达式的值永远为3即非零所以其后语句永远被执行。

如:if(3)a=5; if(‘a’)c=6;其后的语句也总被执行。

③If后面的执行语句有多个时,要用{}括起来,构成复合语句

如if(x>3){a=8;b=6;c=7; }这里a=8,b=6,c=7都是执行语句

当然,也可以写成if(x>3)a=8,b=6,c=7;

但是,写成if(x>3)a=8;b=6;c=7; 则if的执行语句只是a=8。

④if后面的执行语句也可以是空语句,但必须加上;如if(x>3);

2.if…else语句

(1)形式:

if(表达式)语句1; else(表达式)语句2; (2)执行过程:

首先计算()内表达式的值,若表达式的值为非零(真),则执行if 后的语句1,然后跳出整个if 选择结构,继续执行if 语句的下一个语句;若表达式的值为0则执行else 后面的语句,然后跳出整个if 选择结构,继续执行if 语句的下一个语句。 流程图:

if else 假(零)

真(非零)

说明:if 与else 后面的语句也可以是复合语句,此时要加{},else 必需与if 配对。

3 if …else …if 语句 :else 语句中又有if 语句

语句1 表达式 语句2 语句3 语句4

相关文档
最新文档