第4章 过程化语句

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

×

if (a>0) { if (a<2) { cout<<“A”<<endl; } } if (a>0) else { if (a<2) cout<<“B"<<endl; } { cout<<“A”<<endl; } else { cout<<“B"<<endl; } }
15
4.4 switch语句
22
#include < iostream.h > int main() {void action1(int,int); void action2(int,int); char ch; int a=15,b=23; cin>>ch; switch(ch) 输入其他字符 { case 'a': case ‘A’: action1(a,b);break; case 'b': case ‘B’: action2(a,b);break; default: putchar(‘\a’); } 发出警告 return 0; }
10
[例] 求解函数值
例,输入x的值,求解下面函数,并输出函数 值。
1 x>0 0 x=0 -1 x<0
y=
11
[例] 求解函数值
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. #include <iostream> using namespace std; int main() { int x, y; cout<<“请输入一个整数:"; cin>>x; if (x>0) y=1; else if (x==0) y=0; else y=-1; cout<<“y= "<<y<<endl; return 0; }
一般形式
switch (表达式) 可以是整型 字符型、 整型、 可以是整型、字符型、枚举型 { case 常量表达式 1:语句1; break; case 常量表达式 2:语句2; break; 每个常量表达式的值不 ┆ 能相同, 能相同,次序不影响执 case 常量表达式 n:语句n; break; 行结果。 行结果。 default : 语句n+1 } 可以是多个语句, 可以是多个语句,但不 必用{ 。 必用 }。 匹配失败时默认处理分支。 匹配失败时默认处理分支。
23
4.4 switch语句
这是一个非常简单的示意程序 实际应用中,所指定的操作可能比较复杂:
A:输入全班学生各门课的成绩 B:计算并输出每个学生各门课的平均成绩 C:计算并输出各门课的全班平均成绩 D:对全班学生的平均成绩由高到低排序并输出
可以按以上思路编写程序,把各action函数设计 成不同的功能以实现各要求
输入1~5时显示 时显示workDay,如何实现? 输入 时显示 ,如何实现?
18
说明:
1.switch括号中的表达式只能是整型、字符型 枚举型或布尔型;且case后面的常量表达式的 类型必须与其匹配。
eg: float f=1.6; switch (f) {……} //error:f是浮点型
2.case值是语句标号,每个case常量表达式的 值必须互不相同。 3.break的作用是跳出switch语句。 4.在每个分支都带有break的情况下,case的次 序不影响执行结果。 5.多个case可以共用一组执行语句。 6.default语句是可选的。
if语句 switch语句
5
4.0 if 语句
1.if 语句的三种形式
① if(表达式) 语句 ② if(表达式) 语句1 else 语句2 ③ if(表达式1) 语句1 else if(表达式2) 语句2 if() … else if() else if(表达式n) 语句n ... else 语句n+1 else
6
4
8
[例]判断输入的年份是否是闰年
例: 输入一个年份,判断是否闰年,并将结果输 出。 闰年的条件:
(1)能被4整除,但不能被100整除的年份都是闰年, 如2008、2012、2048年 (2)能被400整除的年份是闰年,如2000年
不符合这两个条件的年份不是闰年
例如2009、2100年
9
[例]判断输入的年份是否是闰年
执行顺序
以case中的常量表达式值为入口标号,由此开始顺序执 行。因此,每个case分支最后应该加break语句。
16
Switch语句
case
v1
s1 break;
case
v2
s2 break;
e=
case

… break;
case
vn
sn break;
default
sn
17
例如,输入一个0~6的整数,转换成星期输出。
#include <iostream.h> int main(void) { int day; cin >> day; switch (day) { case 0: cout << "Sunday" << endl; break; case 1: cout << "Monday" << endl; break; case 2: cout << "Tuesday" << endl; break; case 3: cout << "Wednesday" << endl; break; case 4: cout << "Thursday" << endl; break; case 5: cout << "Friday" << endl; break; case 6: cout << "Saturday" << endl; break; default: cout << "Day out of range Sunday .. Saturday"<< endl; } 语句去掉, 把break语句去掉,运行试试? 语句去掉 运行试试? }
24
循环语句
循环结构
循环条件,循环体 循环条件为true,进入循环体;否则退出循环。
循环语句
while语句 do...while语句 for语句 功能相似,在许多情况下可以相互替换 区别:控制循环的方式不同
运行结果1: Enter x and y:5 8 x<y 运行结果2: Enter x and y:8 8 x=y 运行结果3: Enter x and y:12 8 x>y
13
4.0 if 语句
3.解决二义性
else总是和离它最近的还没有配对的可见的if匹配。
14
if (a>0) 例:if (a<2) cout<<“A”<<endl; else cout<<“B"<<endl; if (a>0) if (a<2) cout<<“A”<<endl; else cout<<“B"<<endl; if (a>0) if (a<2) cout<<“A”<<endl; else cout<<“B"<<endl;
19
例: 编写程序,用switch语句处理菜单命令。 解题思路:在许多应用程序中,用菜单对流程 进行控制,例如从键盘输入一个’A’或’a’字 符,就会执行A操作,输入一个’B’或’b’字 符,就会执行B操作,等等。 B
20
Leabharlann Baidu
#include < iostream.h > void action1(int x,int y) int main() { { void action1(int x, int y); void action2(int x, int y); cout<<"x+y="<<x+y<<endl; char ch; int a=15,b=23; } cin>>ch; switch(ch) 输入a或 输入 或A { case 'a': case 'A': action1(a,b);break; case 'b': 调用action1函数,执行 操作 函数, 调用 函数 执行A操作 case 'B': action2(a,b);break; default: putchar('\a'); } return 0; }
1. #include <iostream> 2. using namespace std; 3. int main() nYear % 4 == 0 nYear % 100 != 0 4. nYear % 400 == 0 { 5. unsigned nYear; 6. cout<<"请输入年份:"; 7. cin>>nYear; 8. if ( !(nYear%400) || ( !(nYear%4) && (nYear%100) ) ) 9. cout<<nYear<<"是闰年!"<<endl; 10.if ( (nYear%400==0) || ( (nYear%4==0) && (nYear%100!=0) ) ) else 11. cout<<nYear<<"不是闰年!"<<endl; 12. return 0; 13. }
6
4.0 if 语句
说明:
1)如果在if、esle后有多条语句,则必须用花括号将这些 语句括起来,否则只有后跟的第1条语句有效。 2)if语句中的条件表达式一般为关系表达式或逻辑表达 式,也可以是任意的数值类型。 if (a>0) cout(“OK\n”); else cout(“NO\n”); cout(“Try again \n”);
3
学习目标:
熟练使用while循环语句 熟练使用do…while 循环语句 熟练使用for循环语句 熟练使用switch多重选择语句 熟练使用break和continue语句
4
分支语句
选择结构
对给定条件进行判断,根据判断的结果(真或假) 来决定执行两个分支或多个分支程序段中的一个分 支。
分支语句
12
4.0 if 语句
2.if语句的嵌套
若“语句”之一是if语句,就是if语句嵌套 例如,输入两个整数,比较两个数的大小。
#include<iostream.h> int main( ) { int x,y; cout<<"Enter x and y:"; cin>>x>>y; if (x!=y) if (x>y) cout<<"x>y"<<endl; else cout<<"x<y"<<endl; else cout<<"x=y"<<endl; }
7
[例] 求三个整数的最大值
1. #include <iostream> 请输入三个整数:5 2. using namespace std; 3. int main() 最大的值为:6 4. { 5. int nNum1, nNum2, nNum3; 6. int nMax; 7. cout<<"请输入三个整数:"; 8. cin>>nNum1>>nNum2>>nNum3; 9. nMax = nNum1; 10. if (nMax<nNum2) // 第1个if语句 11. nMax = nNum2; 12. if (nMax<nNum3) // 第2个if语句 13. nMax = nNum3; 14. cout<<"最大的值为:"<<nMax<<endl; 15. return 0; 16.}
21
void action2(int x,int y) #include < iostream.h > { int main() {void action1(int,int); void action2(int,int); cout<<"x*y="<<x*y<<endl; char ch; int a=15,b=23; } cin>>ch; switch(ch) 输入b或 输入 或B { case 'a': case ‘A’: action1(a,b);break; case 'b': case ‘B’: action2(a,b);break; default: putchar(‘\a’); } 调用action2函数,执行 操作 函数, 调用 函数 执行B操作 return 0; }
第4章 过程化语句
第4章 过程化语句
C++语句类别
说明语句 表达式语句 顺序结构 块语句 选择结构 分支语句 循环语句 循环结构 转向语句 标号语句 异常处理语句
2
本章主要内容
4.0 if 语句 (3.6) 4.4 switch 语句 4.1 while 语句 4.2 do…while语句 do…while 4.3 for 语句 4.5 转向语句 4.6 过程应用:求π 4.7 过程应用:判明素数 作业
相关文档
最新文档