顺序结构
顺序结构是程序按照从头到尾的顺序执行的结构,而且你所编写的代码一定会被执行。示意图如下:
开始 -> A语句 -> B语句 -> C语句 -> 结束
例题: 勾股定理
给出两个浮点数:直角边长 $a,b$ 。求斜边长度 $c$ 。
解题思路
- 输入 $a,b$
- 勾股定理公式: $a^2 + b^2 = c^2$
- 输出 $c$
正确代码
#include <iostream>
#include <cmath> // 引用数学库
using namespace std;
int main ()
{
double a, b, c;
cin >> a >> b;
c = sqrt (a * a + b * b); // 勾股定理公式,sqrt()是开根号函数,属于 cmath 库
cout << c;
return 0;
}
分支结构
分支结构是程序在满足特定条件下执行特定的语句,示意图如下:
开始 -> 如果满足A条件:执行B,否则:执行C -> 结束
如果A条件成立,那么会执行B,否则会执行C。
if
if (条件)
{
语句 // 条件为真,执行
}
当满足上述条件,则执行内容。实例:
int a = 2;
if (a > 0)
{
cout << "a > 0" << endl;
}
if (a > 3)
{
cout << "a > 3" << endl;
}
程序输出: a > 0
。
if ... else ...
else 是否则,当 if 的条件不满足时,可执行 else 的内容。
if (条件)
{
语句 // 条件为真,执行
}
else
{
语句 // 条件为假,执行
}
实例:
int a = 2;
if (a > 0)
{
cout << "a > 0" << endl;
}
else
{
cout << "a < 0" << endl;
}
程序输出: a > 0
。
if ... else if ... (else ...)
else if
是在否则的基础上再加一个如果:
if (条件1)
{
语句 // 条件1为真,执行
}
else if (条件2)
{
语句 // 条件1为假且条件2为真,执行
}
else if
可以有很多个,但 else
只能有一个。
例题:商店打折
商店为了吸引顾客,推出满减活动,规定:满 40 打 8 折,满 100 打 5 折。
给出消费金额 $a$ ,请你算出应付金额 $k$ 。
解题思路
- 用
if ... else if ... else ...
语句判断是否打折或打几折 - 输出金额。
正确代码
#include <iostream>
using namespace std;
int main ()
{
double a;
cin >> a;
if (a >= 100)
{
cout << a * 0.5;
}
else if (a >= 40)
{
cout << a * 0.8;
}
else
{
cout << a;
}
return 0;
}
循环结构
循环结构常用于解决很多遍相同的事情,计算机的强项。
while
while
是一个循环块,它的规则如下:
while (循环条件)
{
语句 // 每循环一轮都会判断是否满足条件
}
for
for
是一个常用的循环块,规则如下:
for (循环前做的语句; 循环条件; 每轮循环结束后执行的语句)
{
语句
}
for
会比 while
更方便,而且更常用,通过下面这段代码你就知道为什么了。
while 示例
int a = 0;
while (a < 5)
{
cout << "YES" << endl;
a ++; // 千万不要忘,否则会死循环
}
for 示例
for (int i = 0; i < 5; i ++)
{
cout << "YES" << endl;
}
上面的两段代码意思相同,结果相同,都是:
YES
YES
YES
YES
YES
是不是 for
更方便呢?