第4、5章控制结构 一般,程序中的语句是按书写的顺序逐条执行。 这种执行方式称为顺序执行。但是,程序设计语 言也允许程序员自己指定接下去要执行的语句, 该语句也许不是顺序的下一条。这种执行方式称 为控制转移。C++提供两种控制转移结构: 分支程序设计 循环程序设计
一般,程序中的语句是按书写的顺序逐条执行。 这种执行方式称为顺序执行。但是,程序设计语 言也允许程序员自己指定接下去要执行的语句, 该语句也许不是顺序的下一条。这种执行方式称 为控制转移。C++提供两种控制转移结构: 分支程序设计 循环程序设计
《程序设计》2006.9 逻辑思维及分支程序设计 问题: 上地理课时,四个学生回答我国四大湖大小时分别说: A:洞庭最大,洪泽最小, 鄱阳第三 B:洪泽最大,洞庭最小,鄱阳第二,太湖第三 C:洪泽最小, 洞庭第三 D:鄱阳最大,太湖最小,洪泽第二,洞庭第三 对于每个湖的大小,每个人仅答对一个,试判断四个 湖的大小。 计算机思维的最基本的工作是能够分清各种情况 程序设计-2
《程序设计》 2006.9 程序设计 - 2 v 问题: 上地理课时,四个学生回答我国四大湖大小时分别说: A:洞庭最大,洪泽最小,鄱阳第三 B:洪泽最大,洞庭最小,鄱阳第二,太湖第三 C:洪泽最小,洞庭第三 D:鄱阳最大,太湖最小,洪泽第二,洞庭第三 对于每个湖的大小,每个人仅答对一个,试判断四个 湖的大小。 v 计算机思维的最基本的工作是能够分清各种情况
《程序设计》2006.9 逻辑思维及分支程序设计 关系表达式 逻辑表达式 If语句 Switch语句 程序设计-3
《程序设计》 2006.9 程序设计 - 3 关系表达式 逻辑表达式 If 语句 Switch语句
《程序设计》2006.9 关系表达式 ”关系运算符 >,>=, ==,<=,<,= 优先级:高于赋值运算符,低于算术运算符。 关系运算符内部:==和!=较低 关系表达式 用关系运算符将二个表达式连接起来称为关系表达式 关系表达式的结果是:true或false eg.x y -3<-2<-1 应写成:(-3<-2)&&(-2<-1) a<b==c<d 程序设计-4
《程序设计》 2006.9 程序设计 - 4 v 关系运算符 >, >= , == , <= , <, != 优先级:高于赋值运算符,低于算术运算符。 关系运算符内部:==和 !=较低 v 关系表达式 用关系运算符将二个表达式连接起来称为关系表达式 关系表达式的结果是: true 或 false eg. x < y -3 < -2 < -1 a < b == c < d 应写成:(-3 < -2)&& (-2 < -1)
《程序设计》2006.9 关系表达式续 算术运算符的优先级比关系运算符高 5+3>6-2→(5+3)>(6-2) 注意事项 >“等于”运算符是由两个等号组成。常见的错误是在 比较相等时用一个等号。 >要小心避免冗余。主要是在关系表达式中需要判别布 尔型的变量的值时。判别一个布尔变量ag的值是否 为true,初学者常常会用表达式flag=true。事实上, 只要用一个最简单的表达式:f1ag就可以了 程序设计-5
《程序设计》 2006.9 程序设计 - 5 v 算术运算符的优先级比关系运算符高 v 注意事项 Ø “等于”运算符是由两个等号组成。常见的错误是在 比较相等时用一个等号。 Ø 要小心避免冗余。主要是在关系表达式中需要判别布 尔型的变量的值时。判别一个布尔变量flag的值是否 为true,初学者常常会用表达式flag == true。事实上, 只要用一个最简单的表达式:flag就可以了 5 + 3 > 6 - 2 (5 + 3) > (6 – 2)
《程序设计》2006.9 逻辑思维及分支程序设计 关系表达式 逻辑表达式 If语句 Switch语句 程序设计-6
《程序设计》 2006.9 程序设计 - 6 关系表达式 逻辑表达式 If语句 Switch语句
《程序设计》2006.9 逻辑表达式 逻辑运算符 &(and) ‖(or) (not) 优先级:!>关系运算符>&&>‖ 逻辑表达式 由逻辑运算符连接起来的表达式,其结果为“真 (true)”或“假(false)” 程序设计-7
《程序设计》 2006.9 程序设计 - 7 v 逻辑运算符 && (and) || (or) ! (not) 优先级: ! > 关系运算符 > && >|| v 逻辑表达式 由逻辑运算符连接起来的表达式,其结果为“真 (true)”或“假(false)
《程序设计》2006.9 eg.写出下列问题的C语言表达式 1检查字符变量a的内容是否为字母。 a>=’a’&&a=’A'&&a<=Z3 注意,不能写成 ’a’<=a<=’z’’A’<=a=’Z 2整型变量m的内容是否为偶数 m%2==0 程序设计-8
《程序设计》 2006.9 程序设计 - 8 eg. 写出下列问题的C语言表达式 1 检查字符变量a的内容是否为字母。 a >= ’a’ && a = ’A’ && a <= ’Z’ 2 整型变量m的内容是否为偶数 m % 2 == 0 注意,不能写成 ’a’ <= a <= ’z’ || ’A’ <= a <= ’Z’
《程序设计》2006.9 逻辑表达式须注意 C参加逻辑运算的对象可为任意类型的数据,0为假,非0 为真。 5%2&&p 5>3&&2‖8b)&&(n=c>d) a=1,b=2,c=2,d=4,m=1,n=1. 问执行后m,n的值分别为多少? m=0,n=1 程序设计-9
《程序设计》 2006.9 程序设计 - 9 v c参加逻辑运算的对象可为任意类型的数据,0为假,非0 为真。 5 % 2 && p p 5 > 3 && 2 || 8 b) && (n = c > d) a = 1, b = 2, c = 2, d = 4, m = 1, n = 1. 问执行后m,n的值分别为多少? m=0, n=1
《程序设计》2006.9 逻辑运算常见错误 当采用逻辑操作符!&&时,必须要细 心,避免一些常见错误。例如:如果要 想表达x即不等于2也不等于3,若写成: if(x!=2x!=3) /错误! 正确形式为: f(!(x==2‖x=3)OR if(x!=2&&x!=3) 程序设计-10
《程序设计》 2006.9 程序设计 - 10 v 当采用逻辑操作符 ! && ||时, 必须要细 心,避免一些常见错误。例如:如果要 想表达x即不等于2也不等于3,若写成: if (x != 2 || x != 3) // 错误! 正确形式为: if (!(x ==2 || x == 3)) OR if (x != 2 && x != 3)