控制流简介
本节阅读量:当程序运行时,CPU从main()的顶部开始执行,执行一些语句(默认情况下按顺序),执行的特定语句序列称为程序的执行路径。
考虑以下程序:
|
|
该程序的执行路径按顺序包括第5、7、8、10和12行。这是无分支程序的一个例子。每次运行时都采用相同的路径(以相同的顺序执行相同的语句)。
然而,这通常不是我们想要的。例如,如果要求用户输入,而用户输入了无效的内容,理想情况下,我们希望让用户做出另一个选择。这在无分支的程序中是不可能的。事实上,用户可能会重复输入无效的输入,因此在运行时之前,需要用户选择的次数也是不确定的。
幸运的是,C++提供了许多不同的控制流语句,这些语句允许程序员通过程序更改正常的执行路径。在前面,我们已经看到了一个使用if语句的例子,它允许我们仅在条件表达式为true时执行语句。
当控制流语句导致执行点更改为非顺序语句时,这称为分支。
控制流语句的类别
类别 | 样例 | c++中的实现方式 |
---|---|---|
条件 | 条件满足时,才执行对应语句 | if, else, switch |
跳转 | cpu,从其它地方开始执行 | goto, break, continue |
函数调用 | 跳到其它地方执行,处理完成后返回 | function calls, return |
循环 | 满足条件的情况下,重复执行一段代码0次或多次 | while, do-while, for, ranged-for |
停止 | 停止程序执行 | std::exit(), std::abort() |
异常 | 错误处理的一种特殊形式 | try, throw, catch |
在本章中,我们将详细介绍所有这些类别,异常处理(exceptions)除外,我们将在未来的一章中专门讨论。
在本章之前,程序可以做的事情数量相当有限。能够控制程序的流程(特别是使用循环)使许多有趣的事情成为可能!您将不再局限于玩具程序——您将能够编写具有真正实用性的程序。
这是真正的乐趣开始的地方。让我们开始吧!
