1.4 控制结构
一、选择结构
1.单分支结构:
if(条件表达式) 语句1;
2.双分支结构:
if(条件表达式) 语句1;
else 语句2;
3.switch语句
switch(判断表达式)
{
case 常量表达式1:
语句1;
break;
case常量表达式2:
语句2;
break;
// ……
default: 语句n+1;
}
二、循环结构
1.三要素
- 循环遍历、循环体和循环终止条件
2.循环结构
-
for循环的一般结构
for(表达式1;表达式2;表达式3)
{
语句;
}
-
while循环的一般结构
while(表达式)
{
语句;
}
图 1.4.1 while循环流程图
-
do- while循环的一般结构
do
{
语句;
}while(表达式);
图 1.4.2 do-while循环流程图
3.程序举例
- 计算这一天是这一年的第几天
int monthDays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int main()
{
int year, month, day;
cout << "输入年,月,日:\n";
cin >> year >> month >> day;
int sumDays = day;//总天数
for (int i = 1; i < month; i++) //忽略闰年
sumDays = sumDays + monthDays[i];
cout << year <<'-'<< month <<'-'<< day << " is "
cout<< year << " 年的第" << sumDays << "天\n";
system("pause");
return 0;
}
- 输入两个整数m,n,计算其最大公约数
int main()
{
int a, b;
cout << "输入m,n的值:\n";
cin >>a >> b;
int m = a, n = b;
int r = m%n;
while (r != 0)
{
m = n; n = r; r = m%n;
}
cout << a << "," << b << "的最大公约数是:" << n << endl;
system("pause");
return 0;
}
- 用公式求π的近似值,直到最后一项的绝对值小于10-8为止。
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
double s = 0, t = 1;
int sgn = 1, k = 1;
do
{
s = s + t;
k = k + 2;
sgn = sgn*(-1);
t = sgn / double(k);
} while (fabs(t) > 1e-8);
cout << setprecision(15) << s * 4 << endl;
system("pause");
return 0;
}