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) 语句1
else if(表达式2) 语句2
...... ......
else if(表达式n) 语句n
else 语句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();
括号内不能有任何参数