跳转到内容

现代 C++:精华部分/现在开始有意思了。

来自 Wikibooks,开放世界中的开放书籍

到目前为止,我们所有的程序都很直接:从顶部开始,逐行读取,直到到达底部。现在情况发生了变化,因为这不是编写程序的真正有用方式。有用的程序通常会重复一些东西,或者决定不做一些东西。本章将介绍如何在运行时选择执行路径。

#include <iostream>
#include <string>

int main()
{
	std::string input;
	int a, b;
	int greater;
	// This one starts out with a value.
	bool canDecide = true;

	std::cout << "Enter two integers to compare.\n";

	// Take input.
	std::cin >> input;
	// Parse it as an int.
	a = std::stoi(input);
	
	// Take input.
	std::cin >> input;
	// Parse it as an int.
	b = std::stoi(input);
	
	// This is equality, and it might be true now and false later.
	if(a == b)
	{
		// = does not mean equality, which means we can do this.
		canDecide = false;
	}
	else if (a < b)
	{
		greater = b;
	}
	else
	{
		greater = a;
	}
	
	if(canDecide)
	{
		std::cout << greater << " is the greater number.\n";
	}
	else
	{
		std::cout << "The numbers are equal.";
	}
}

bool布尔 的缩写,表示是或否、真或假。在本例中,布尔变量 "canDecide" 初始化为 true。基本上,程序假设它 "可以决定" 哪个数字更大,直到看到相反的证据。以这种方式覆盖布尔值非常有用。

== 是相等运算符;它确定两个值是否相等,并返回真或假。注意:它不会改变任何值的的值。

任何看起来像 if(...){...} 的都是一个 if 语句a == b 是一个 表达式,它计算为布尔值。表达式是一些可以解析为值的代码。if(a == b) 后的花括号包含如果 a 等于 b 则运行的代码。

else if 表示 "否则,如果...",并且只有在第一个 if 语句的 条件(布尔值)为假时才会测试它。else 本身不会测试任何条件,而是在其链中的任何 if 语句都没有运行时才会运行。

当以这种方式选择一些逻辑进行执行时,"控制" 被认为 "流入" 逻辑。因此,if 语句被认为是 控制流 语句或 控制结构,它是一组包含一些其他构造,这些构造将在后面介绍。

  • 编写一个计算器,提示用户输入两个浮点数和一个运算符,然后打印结果。
bool
两个可能值之一,truefalse。也称为 条件
表达式
一些可以解析为值的代码。
if 语句
如果其条件为真则运行。语法:if(condition){ }
控制流
哪些代码运行,以及运行顺序。
控制结构
修改控制流的语句。也称为 控制流语句
现代 C++:精华部分
 ← 数字运算 现在开始有意思了。 切换方式 → 
华夏公益教科书