C + + 程序的流程控制
例:
例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) cout<<year<<"is a leap year"<<endl; else cout<<year<<"is not a leap year"<<endl;
}
此例题结束!
3.2.3 if多分支结构
格式: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),若没有该语句则什么 也不做,如图。
继续
例4:输入一个0~6的整数,转换
成星期输出
break;
case 6: cout<<"Saturday"<<endl; break; default: cout<<"Day out of range Sunday . . . Saturday"<<endl; }
}
此例题结束!
关于switch多分支结构,应注意 以下几点:
返回
3.ห้องสมุดไป่ตู้ 循环结构
for循环 3.3.2 while循环 3.3.3 do…while循环 3.3.4 循环结构的特殊控制:
break和continue的使用
3.3.1
3.3.1 for循环
for语句的格式: for(循环初始化;循环条件;循环 参数调整)循环体 其中的循环条件应当是一个逻辑 表达式,而循环初始化和循环 参数调整都应当是具有副作用 的表达式,其中循环参数还应 当是一个能够影响循环条件的 表达式。 说明:1、括号内的三项都可以省 略,但分号不能省略。 2、循环条件如果省略,循环将无 终止的进行下去。
3.4.1 goto语句
利用goto语句可以无条件地转移到指定标号处。 标号定义格式: 标号 :语句语句 转移到指定标号的格式: goto标号:
3.4.2 return语句
return语句用于结束函数的运行并返回到调用处,其格式是: return〖表达式〗; 对于无返回值的函数,即说明为void F(…)的函数(F为任意的函数 名),可使用return;结束函数运行(return后无表达式)。 首页 结束
继续
例6:
do{
i++; a++; }while(i<3); i++; } cout<<a<<","<<i<<endl; }
此例题结束!
例7:求100~200之间不能被3 整除的数
源程序:
#include<iostream.h> void main() { for(n=100;n<=200;n++) { if(n%3!=0) printf("%d",n); } }
继续
例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; }
例:
例3:输入一个0~100分范围内的一
个成绩,显示相应的等级:
90~100——优;80~89——良;70~79——中; 60~69——及格;60分以下——不及格。 源程序:#include<iostream.h> void main() { float score; cout<<"请输入成绩:"; cin>>score;
do…while语句的一般格式: do循环体while(循环条件) 由于这种结构先执行 后判断,因此其循环体至 少执行一次。
例:循环结构的嵌套
循环结构与选择结构 相互嵌套
例6:
源程序:
#include<iostream.h> void main() { int i(1),a(0); for(;i<=5;i++) {
此例题结束!
3.3.4 循环结构的特殊控制: break和continue的使用
1、break语句
使程序从循环和switch语句内跳出,继续 执行逻辑上的下一条语句。 break语句不能用在 别处.
2、continue语句
结束本次循环,接着开始判断决定是否继续 执行下一次循环。
3.4 其他流程控制
成星期输出
源程序:
#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; case 2: cout<<"Tuesday"<<endl; break; case 3: cout<<"Wednesday"<<endl; break; case 4: cout<<"Thursday"<<endl; break; case 5: cout<<"Friday"<<endl;
此例题结束!
3.3.2 while循环
while语句的格式: while(循环条件)循环体 由于这种结构先判断 后执行,因此如果一开始 循环条件就不成立的话, 起循环体就一次也不执行。 While语句更具一般性, 一切用for语句实现的循 环也可以用while语句实 现。
3.3.3 do…while循环
C + + 程序的流程控制
3.1 3.2 3.3 3.4 流程控制与程序结构 条件分支结构 循环结构 其他流程控制
3.1 流程控制与程序结构
流程控制方式中三种最基本的:顺序控 制、条件分支控制和循环控制。 每一种控制都有赖于一种特定的程序 结构来实现,因此也就有三种基本程序结构: 顺序结构、条件分支结构和循环结构。
循环结构
循环控制就是指由特 定的条件决定某个语句重 复执行次数的控制方式。 循环结构还可以进一 步分为先判断后执行结构 和先执行后判断结构。在 C + +中用while语句、 for语句和do…while语 句实现。
3.2 条件分支结构
3.2.1 3.2.2 3.2.3 3.2.4 结构
例
例5:输入一个整数,求出它的 所有因子
源程序:
#include<iostream.h> void main(void) { int n,k; cout<<"Enter a positive integer:";
继续
例5:输入一个整数,求出它的 所有因子
cin>>n; cout<<"Number "<<n<<" Factors"; for(k=1;k<=n;k++) if(n%k==0) cout<<k<<" "; cout<<endl; }
1、整型表达式处如果不是整 型,则它的值将被自动转换成 整型。 2、整型常量表达式是指在编 译时可确定其值的整型表达式, 通常就是一个整型常量。如果 表达式的类型不是整型,将被 自动转换为整型。 4、语句序列可以是空的,即 其中一个语句也没有。
3、所有语句序列按其排列顺 序相互衔接,而case的作用只 是标明一个入口以及转入该入 口的条件。一旦从某个入口进 入一个语句序列,就从该语句 序列开始顺序执行,直到以下 所有语句序列执行完毕时为止。 5、break语句的作用是提前结 束switch语句的执行。如果每 个语句序列的最后一个语句都 是break,则这样的switch多 分支结构可以用等效的if多分 支结构代替。