3.1结构化程序设计
基本控制结构:
- 顺序结构
- 选择结构
- 循环结构
C++语句:
- 说明语句
- 控制语句
- 函数调用语句
- 表达式语句
- 空语句
- 复合语句
3.2选择结构语句
if语句:
(1)单选条件语句
if(表达式) 语句
if(x>y) cout<<x<<'\n';
(2)二选一条件语句
if(表达式) 语句1
esle 语句2
if(x>y) cout<<x<<'\n';
else cout<<y<<endl;
(3)多选一条件语句格式
if(表达式1) 语句1else if(表达式2) 语句2...... ......else if(表达式n) 语句nelse 语句m
(4)if内嵌语句
内嵌语句是复合语句,一定用"{}"括起来。
条件运算符“?”
表达式1?表达式2: 表达式3
max=a>b?a:b;
//若a>b为真,max=a;否则max=b
max=(a>b)?a:b;max=a>b?a:(b+1);
max=a>b?a:b+1;//二者等效
表达式的结合方向为“自右至左”:
a>b?a:c>d?c:d;
//相当于
a>b?a:(c>d?c:d);
条件与算符的三个表达式类型不同,此时条件表达式取转换级别较高的类型
cout<<(3>2?'a':20);
//输出为97而不是a,表达式3为整型,将字符‘a’转换
switch语句
又称开关语句,是一种多分支选择语句
switch (表达式) {case 常量表达式1: 语句1;case 常量表达式2: 语句2;case 常量表达式3: 语句3;......case 常量表达式n: 语句n;default: 语句n+1;
}
switch后的表达式只能是整型或字符型
各常量表达式只能由常量组成,其值也只能是整型或字符型
default子句可以省略
3.3循环结构语句
while语句
while语句实现“当型”循环,格式如下:
while(表达式) 语句
先判断循环条件后执行循环体。
//计算s=1+1/3+1/5+1/7+......+1/99
#include<iostream>
using namespace std;
int main(){float s=0;int i=1;float t=0;while(i<100) {t=1.0/i;s+=t;i=i+2;}cout<<s<<'\n';return 0;
}
do-while语句
do
循环体语句
while(表达式);
do-while语句while后面的;必不可少
//迭代法求x=√a的近似值,公式:Xn+1=1/2(Xn+a/Xn),X0=a或a/2,两次求出的x的差绝对值小于10^-5
#include<iostream>
#include<cmath>
using namespace std;
int main(){float a;float x0,x1;cout<<"请输入a的值\n";cin>>a;x0=a;do {x0=x1;x1==1/2(x0+a/x0);}while(fabs(x1-x0)>1e-5);return 0;
}
for语句
格式:
for(表达式1;表达式2;表达式3) 循环体语句
执行过程如下:
for循环三个表达式的功能:
for(循环变量赋初值;循环条件;循环变量增量) 循环体语句
三个表达式都可以省缺,但“;”不能省略
3.4控制执行顺序的语句
break语句
使用格式:break;
break语句只能用在switch语句和循环语句中
- 用与break语句中,使程序跳出switch语句去执行switch以后的语句
- 用于循环语句中,使程序终止循环,不再进行循环条件的判断,直接跳出循环体,执行循环后面的语句
//输入三个整数,求三个整数的最小公倍数
#include<iostream>
using namespace std;
int main() {int a,b,c,x;cout<<"请输入三个整数:\n";cin>>a>>b>>c;for(x=a;x<a*b*c;x++)if(x%a==0&&x%b==0&&x%c==0)break;cout<<"最小公倍数是:"<<x<<endl;return 0;
}
continue语句
使用格式: continue;
只能作用在循环语句中,作用是结束本次循环,即跳过当前循环的剩余语句,转到判断循环条件的起始位置,直接判断循环条件,决定是否重新开始下一次循环。
//输出10到20之间不是3倍数的数
#include<iostream>
using namespace std;
int main() {int i;for(i=10;i<=20;i++) {if(i%3==0) continue;cout<<i<<'\t';}return 0;
}
注意:break语句是结束本层循环,continue是结束本次循环。
goto语句
goto语句是一种无条件转移语句,使用格式: goto 语句标号;
语句标号是一个有效的标识符,这个标识符加上一个冒号“ : ”一起出现在程序的某处,即为跳转的位置。
exit和abort函数
二者都是C++的库函数,功能都是终止程序的执行,将流程控制返回给操作系统。
exit用于正常终止程序的执行,abort用于异常终止程序的执行
exit函数格式:exit()表达式;
表达式的值只能是整型数0表示正常退出
abort函数格式:abort();
括号内不能有任何参数