C++程序控制结构
2018-06-05 本文已影响10人
ppjuns
if 语句
if语句有两种形式,一个分支和两个分支的 if-else 语句
if(x>0)cout<<x<<endl;
if((a+b>c)&&(a+c>b)&&(bn+c>a)){
cout<<a<<endl;
}else{
cout<<b<<endl;
}
switch语句
表达式形如
switch(表达式)
{
case 常量表达式1:语句1;break
case 常量表达式2:语句2;break
default:语句2;
}
case 后面没break 就会一直执行下去的,所以break是为了跳出switch。比如:
int year, month, days;
cout << "year=";
cin >> year;
cout << "month=";
cin >> month;
switch (month) {
case 1:
case 3:
case 5 :
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
days = 29;
else
days = 28;
}
cout << "days=" << days << endl;
循环控制
while 循环
表达式形如
while(表达式){
循环体;
}
int s = 0, i = 1;
while(i<100) {
s += i;
i++;
cout<<"s="<<s<<",i="<<i<<endl;
}
do-while� 语句
�形如
do{
循环体
}while(表达式);
int s = 0, i = 1;
do{
s += i;
i++;
cout<<"s="<<s<<",i="<<i<<endl;
}while(i<100);
for 语句
表达式形如
for(表达式1;表达式2;表达式3){
循环体;
}
等效于while循环
表达式1;
while(表达式2){
循环体;
表达式3;
}
另外 for 循环的表达式可以省略,分为以下几种
- for(;;)
- for(s=0,i=0;;)
- for(;i<100;)
- for(s=0,i=1;i<100;s+=1,i++);
// Fiboanacci斐波那契数列的前n项,形如0,1,1,2,3,5,8,13,21
int n,i,a0,a1,a2;
cout<<"n=";
cin>>n;
a0=0;
a1=1;
cout<<a0<<'\t'<<a1<<'\t';
for(i=3;i<=n;i++){
a2=a0+a1;
cout<<a2<<'\t';
if(i%10==0){
cout<<endl;
}
a0=a1;a1=a2;
}
转向语句
break 无条件结束 switch 语句或者循环体 如for,do-while,while。
continue 用于循环体中,终止当前一次循环,不执行continue循环后续语句,而转向循环入口继续执行,如下:
int i=1;
while(i<=10){
i++;
if(i==2){
continue;
}
cout<<i<<'\t';
}
//3 4 5 6 7 8 9 10 11
当 i 等于 2 时不打印了。
break 和 coutinue 的区别在于 break是跳出整个循环或者switch语句,而coutinue是只跳出当前的循环,还会执行循环的。
goto语句
就是无条件转向语句,它与标号语句配合使用,一般的形式如下
goto 标号;
标号:语句;
goto apple;
apple:{
cout<<"apple"<<endl;
};
本章小结
c++ 构成选择结构的条件语句有if 和 switch语句。
while ,do-while,for语句可以相互嵌套构成多重循环结构
break只在循环体或者switch使用
coutinue 只在循环体使用
goto 语句使用不符合结构化程序设计,应该尽量少用