当前位置:
文档之家› C 面向对象程序设计.ppt
C 面向对象程序设计.ppt
循环结构与选择结构 相互嵌套
例6:
源程序:
#include<iostream.h> void main() {
int i(1),a(0); for(;i<=5;i++) {
继续
例6:
do{ i++; a++; }while(i<3);
i++; } cout<<a<<","<<i<<endl; }
if (条件 2) 语句 1 else 语句2 else (条件 3) 语句3 注意:语句1、2、3、4可以是复合语句;每层的if 要与 else 配对,如果省略某一个 else ,便要用{ }括起该 层的 if 语句来确定层次关系。
例:
例2: 比较两个数的大小
源程序:
#include<iostream.h> void main () {
1、break语句
使程序从循环和switch语句内跳出,继续 执行逻辑上的下一条语句。 break语句不能用在 别处.
2、continue语句
结束本次循环,接着开始判断决定是否继续 执行下一次循环。
3.4 其他流程控制
3.4.1 goto语句
利用goto语句可以无条件地转移到指定标号处。
标号定义格式: 标号 :语句语句 转移到指定标号的格式: goto标号:
2、循环条件如果省略,循环将无
例 终止的进行下去。
例5:输入一个整数,求出它的 所有因子
源程序:
#include<iostream.h> void main(void) {
int n,k; cout<<"Enter a positive integer:";
继续
例5:输入一个整数,求出它的 所有因子
例:
例1:输入一个年份判断是否闰年
源程序:
#include<iostream.h> void main(void) { int year;
bool IsLeapYear; cout<<"Enter the year:";
继续
例1:输入一个年份判断是否闰年
cin>>year; IsLeapYear = ((year %4 = = 0 && year %100! = 0)||(year %400 = = 0)); if (IsLeapYear)
成星期输出
源程序:
#include<iostream.h> void main(void) { int day;
cin>>day; switch(day) {
case 0: cout<<"Sunday"<<endl; break;
继续
例4:输入一个0~6的整数,转换
成星期输出
case 1: cout<<"Monday"<<endl; break;
成星期输出
break; case 6: cout<<"Saturday"<<endl; break; default: cout<<"Day out of range
Sunday . . . Saturday"<<endl; }
}
此例题结束!
关于switch多分支结构,应注意 以下几点:
1、整型表达式处如果不是整 3、所有语句序列按其排列顺
例:
例3:输入一个0~100分范围内的一
个成绩,显示相应的等级:
90~100——优;80~89——良;70~79——中; 60~69——及格;60分以下——不及格。
源程序:#include<iostream.h> void main() { float score; cout<<"请输入成绩:"; cin>>score;
case 2: cout<<"Tuesday"<<endl; break;
case 3: cout<<"Wednesday"<<endl; break;
case 4: cout<<"Thursday"<<endl; break;
case 5: cout<<"Friday"<<endl;
继续
例4:输入一个0~6的整数,转换
1、 顺序结构
顺序结构—— 通过安排顺序来决定 程序流程的程序结构。
如图:由于 “语句1”在“语句2” 的前面因此先执行 “语句1”,后执行 “语句2”。
2、条件分支结构和循环结构
条件分支结构
条件分支控制就是 指由特定的条件执行哪 个语句的程序结构。
条件分支结构可进 一步分为单分支结构和 多分支结构,在C + + 中用if语句或switch语 句实现。
3.2.1 If 语句
If 语句
格式:if(条件) 语句 1
else 语句 2
由格式可以看出,“else 语句 2”部 分可以没有。
格式含义是:如果条件成立就
执行“语句1”,否则就执行else后 的“语句2”,如图1所示;如果if语 句中不包含“else语句2”部分,则 在条件不成立时什么也不做,如图2。 (其中语句1和语句2不仅可以是一 条语句,而且可以是复合语句)。
此例题结束!
例7:求100~200之间不能被3 整除的数
源程序:
#include<iostream.h> void main() { for(n=100;n<=200;n++)
{ if(n%3!=0) printf("%d",n);
} }
此例题结束!
3.3.4 循环结构的特殊控制: break和continue的使用
循环条件就不成立的话, 起循环体就一次也不执行。
While语句更具一般性, 一切用for语句实现的循 环也可以用while语句实 现。
3.3.3 do…while循环
do…while语句的一般格式:
do循环体while(循环条件)
由于这种结构先执行
后判断,因此其循环体至
少执行一次。
例:循环结构的嵌套
break和continue的使用
3.3.1 for循环
for语句的格式: for(循环初始化;循环条件;循环
参数调整)循环体
其中的循环条件应当是一个逻辑 表达式,而循环初始化和循环 参数调整都应当是具有副作用 的表达式,其中循环参数还应
当是一个能够影响循环条件的 表达式。
说明:1、括号内的三项都可以省 略,但分号不能省略。
Hale Waihona Puke 格式:if (条件1)语句1
else if (条件2) 语句2
else if (条件3) 语句3
…
else if (条件n) 语句n
〖else 语句n+1〗
原理:首先检测条件1,若满足则执行语句1; 否则检测条件2,若满足则执行语句2;否则 检测条件3,若满足则执行语句3……如果所 有的条件都不满足,则执行最后一个else后 的语句(语句n+1),若没有该语句则什么 也不做,如图。
此例题结束!
3.2.4 switch语句和switch 多分支语句
switch语句的格式: switch(整型表达式){
case整型表达式1:语句序列1 case整型表达式2:语句序列2
… case整型表达式n:语句序列n 〖default:语句序列n+1〗
}
例:
注意事项
例4:输入一个0~6的整数,转换
继续
例3:输入一个0~100分范围内的一
个成绩,显示相应的等级:
if(score<0 || score>100) cout<<"成绩必 须在0~100之间!";
else if(score<60) cout<<"不及格"<<endl; else if(score<70) cout<<"及格"<<endl; else if(score<80) cout<<"中"<<endl; else if(score<90) cout<<"良"<<endl; else cout<<"优"<<endl; }
自动转换为整型。
5、break语句的作用是提前结
4、语句序列可以是空的,即 其中一个语句也没有。
束switch语句的执行。如果每 个语句序列的最后一个语句都 是break,则这样的switch多
分支结构可以用等效的if多分
支结构代替。
返回
3.3 循环结构
3.3.1 for循环 3.3.2 while循环 3.3.3 do…while循环 3.3.4 循环结构的特殊控制:
int x,y; cout<<"Enter x and y :"; cin>>x>>y;
继续
例2: 比较两个数的大小
if(x! =y) if(x>y) cout<<"x>y"<<endl; else cout<<"x<y"<<endl;