流程控制语句
上一页 下一页
程序举例(p85例4-3-1) Chap4
#include<iostream.h> void main() {
int weekday; cout<<"今天星期几(0-6)?"; cin>>weekday; switch(weekday){
case 0: cout<<"Sunday"<<endl;break; case 1:cout<<"Monday"<<endl;break; case 2: cout<<"Tuesday"<<endl;break; case 3:cout<<"Wednesday"<<endl;break;
#include<iostream.h> void main() {char ch; cin>>ch; if(ch>='A'&&ch<='Z')ch=ch+32; cout<<ch<<endl; }
上一页 下一页
二、if语句的双分支
Chap4
语句: if(表达式) 语句1 else 语句2
执行:若表达式的值不为0,执行语句1,否则 执行语句2 入口
void main()
{ int x,y;
cout<<"please enter the number:";
cin>>x;
if (x>0)
if (x<=3)
y=x;
else
y=x*x+4; 注:这种方法也是判判断点法
else y= x*x-4;
各条件互相关联形成区间
cout<<"y="<<y<<endl;
• 能被4整除,也能被100整除,还能被400整除: 是闰年
上一页 下一页
Chap4
真
year被4整除
假
真
year被100整除
假
真
year被400整除
No
假
Yes
Yes
No
上一页 下一页
Chap4
#include<iostream.h> void main() { int year;
cout<<"please input the year:"; cin>>year; if(year%4==0) if ( year%100==0) if( year%400==0)
例4.3.1:输入成绩,若:90 — 100 :A 70 — 89 :B 60 — 69 :C <60 :D
上一页 下一页
#include<iostream.h> 不加break
void main()
98
加break
Chap4
{ int cj; cin>>cj; switch (cj/10)
98 A
上一页 下一页
执行:
Chap4
1. 先计算switch中表达式的值M,若不是整数,只取整 数部分;
2. 依次计算每个常量表达式的值M1,M2…,若不是整 型,自动转为整型,起标号的作用。
3. M与 M1,M2…比较,若找到一个匹配的值就从该语 句开始,依次向下执行.否则,执行default后面的语句 组。
要考虑条件成立与不成立
}
上一页 下一页
方法3 三个并列的if 结构------源程序
Chap4
#include<iostream.h>
void main()
{ int x,y;
cout<<"please enter the number:";
cin>>x;
if (x>3) y=x*x+4;
if (x>0&&x<=3) y=x; if (x<=0) y=x*x-4; cout<<"y="<<y<<endl; }
cin>>x;
absx=x; if(x<0) absx=-x; cout<<"x="<<x<<endl;
absx=abs(x); if(x>=0) absx=x; else absx=-x;
cout<<"|x|="<<absx<<endl;
}
上一页 下一页
Chap4
例4.2.2:C若为大写字母,则把它变为小写字母, 否则为c本身。
Chap4
上一页 下一页
§4.3 switch 语句(开关语句)Chap4
switch 语句是多分支选择语句
形式:
switch (表达式) { case 常量表达式1:语句序列1; case 常量表达式2:语句序列2;
….. case 常量表达式n:语句序列n; default:语句序列n+1; }
Chap4
返回 上一页 下一页
也用一个逻辑表达式包含所有条件:
#include<iostream.h> void main() { int year; cout<<"please input the year:";
cin>>year; if ((year%4==0 && year%100!=0)||(year%400==0)) cout<<"Yes"<<endl; else cout<<"No"<<endl; }
exit(1);
}
上一页 下一页
Chap4
程序举例(P85例4-3-2)
switch (int (score)/10) { case 9: case 10: cout<<score<<":优"<<endl;break; case 8: case 7: cout<<score<<":良"<<endl;break; case 6: cout<<score<<":及格"<<endl;break; default: cout<<score<<":不及格"<<endl;break; } }
执行:计算 表达式的值,若为真(不为0) 则执行语句;否则不执行语句
真
表达式
Hale Waihona Puke 假语句上一页 下一页
例4.2.1:求x的绝对值
Chap4
#include<iostream.h>
void main()
#include<math.h>
{
int x,absx;
cout<<"please input x=";
x=b;
cout<<x<<endl;
}
复合语句一定要加大括号 上一页 下一页
三、if 语句的嵌套(处理多分支问题)Chap4
嵌套的两种形式:
(1) 嵌套 if—else (2) 嵌套 else if
上一页 下一页
(1) 嵌套 if—else
Chap4
外层
if(表达式1)
if(表达式2)
if(表达式3)语句1;
上一页 下一页
if_else 嵌套流程图
Chap4
上一页 下一页
Chap4
(2)嵌套 else if
if(表达式1) 语句1;
else if(表达式2) 语句2;
else if(表达式3) 语句3;
….
else if(表达式n) 语句n;
else 语句n+1 ;
/*前面n个条件均
不成立,执行语句n+1*/
嵌套
方法3: 三个并列的if结构设计
上一页 下一页
方法1 :else_if 嵌套结构----源程序:
#include<iostream.h>
void main()
{ int x,y;
cout<<"please enter the number:";
cin>>x; if(x>3)
//X>3
y=x*x+4;
上一页 下一页
else_if 嵌套流程图
Chap4
上一页 下一页
例4.2.4 :编写程序计算函数
x*x-4 (x<=0) y = x (0<x<=3)
x*x+4 (x>3)
Chap4
上一页 下一页
Chap4
解: 根据题目的三个区间,两个判断点,形成三分支,可采 用三种选择结构设计。
方法1:else_if 嵌套结构设计 方法2:if_else嵌套结构设计
}
}
上一页 下一页
程序举例(P85例4-3-2) Chap4
#include<iostream.h>
#include<stdlib.h>
void main()
{
float score;
cout<<"输入一个人的成绩:";