C++ 程序结构

由 5+1 发布

顺序结构

顺序结构是程序按照从头到尾的顺序执行的结构,而且你所编写的代码一定会被执行。示意图如下:

开始 -> A语句 -> B语句 -> C语句 -> 结束

例题: 勾股定理

给出两个浮点数:直角边长 $a,b$ 。求斜边长度 $c$ 。

解题思路

  1. 输入 $a,b$
  2. 勾股定理公式: $a^2 + b^2 = c^2$
  3. 输出 $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$ 。

解题思路

  1. if ... else if ... else ... 语句判断是否打折或打几折
  2. 输出金额。

正确代码

#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 更方便呢?


暂无评论

发表评论