流程控制#
需求
学习使用 if、while、for 语句。
C++ 不仅仅可以按照顺序执行指令,还支持流程控制:循环和选择。
选择语句#
我们常常需要做选择题。
if 语句#
我们可以定义分段数学表达式:
\[\begin{split}
y = \begin{cases}
x * 7 & x < 0\\
x + 10 & x >= 0
\end{cases}
\end{split}\]
首先,初始化变量:
double x {0}, y {0};
给定 x
的值,求取 y
的值:
x = - 4; // x 赋值为 负数
if (x < 0) // 条件
y = x *7; // 当 if 条件满足,则执行此赋值语句
else
y = x + 10; // 当 if 条件为假,则执行此赋值语句
可以查看 y
的值:
y // 符合预期 x * 7
-28.000000
x = 5; // x 赋值为 非负数
if (x < 0) // 不满足条件
y = x *7;
else // 满足条件
y = x + 10; // 当 if 条件为假,则执行此赋值语句
y // 符合预期 x + 10
15.000000
下面的分段数学表达式:
\[\begin{split}
y = \begin{cases}
x * 7 & x < 0\\
x + 100 & x = 0\\
x + 10 & x > 0
\end{cases}
\end{split}\]
使用 if-else
模式不够用了,需要换成 if-else if-else
模式。
x = 0;
if (x < 0)
y = x *7;
else if (x == 0)
y = x + 100;
else
y = x + 10; // 当 if 条件为假,则执行此赋值语句
y // 符合预期 x + 100
100.00000
如果有更多的条件分支,可以添加 else if
语句。
循环#
我们可以需要做一些重复性的工作,在 C++ 中反复执行一段代码的行为称为 循环 (repetition)或者 迭代 (iteration)。
while 语句#
求解数列的和:
\[
S = \sum_{x=1}^{10} x^2
\]
int S {0}; // 初始化 S 用于存储求和的结果
int x {0}; // 初始化 x 为 0
while (x <= 10) {
S += x;
++x;
}
S // 符合预期
55
提示
while
的循环体一定要使用 {}
包裹。
for 语句#
上面的数学求和也可以写作:
int S {0}; // 初始化 S 用于存储求和的结果
for (int x {0}; x <= 10; ++x)
S += x
S // 符合预期
55
关于运算符 ==
#
由运算符
==
组成的表达式一定要使用()
起来包裹起来。(避免出现歧义)。(x == y)
可以理解为隐式类型转换。可以使用强制类型转换
{x == y}
表示真值判断表达式。