> 文章列表 > 011 - C++控制流语句(continue, break, return)

011 - C++控制流语句(continue, break, return)

011 - C++控制流语句(continue, break, return)

今天我们讲的是控制流语句,本期内容是上期课程的延续。

控制流语句一般与循环语句一起工作,它们让我们可以更好的控制这些循环的实际运行。

大概

我们有三个主要的控制流语句可以使用,continuebreakreturn,它们有不同的功能。

continue 只能在循环中使用,它表示 进入这个循环的下一个送代(前提是:如果还有下一次迭代,如果没有,循环就会结束)。

break 主要用于循环中,它也会出现在 switch 语句中,break 意思是要跳出循环,也就是终止循环。

return 应该是最有 ‘‘力量’’ 的一个语句,因为 return 会完全 ‘‘脱离’’ 你的函数,如果你在一个函数中碰到了一个 return 关键字,程序运行会退出这个函数,当然函数可能需要一个返回值,如果只有 return 本身,你只能返回 return 本身,return 本身只适用于 void 函数,如果你的函数需要返回值的话,它需要提供一个返回值。

我们来看一个实际的例子。下面是一段我们之前使用过的程序。

011 - C++控制流语句(continue, break, return)

continue

我们的第一个控制流语句,是continue。

continue 将跳到 for 循环的下一个迭代,如果我按照下面的方式修改,它将不会影响 for 循环的行为,因为这个位置已经是 for 循环的结尾了。

011 - C++控制流语句(continue, break, return)

当程序运行到这一行时,不管怎样,这一行会继续到下一次送代,所以这根本不会改变它的行为。

然而,如果我再这样做,你就会看到明显的不一样了。

011 - C++控制流语句(continue, break, return)

因为如果 i 对 2 取余等于 0 ,就会执行 continue,所以从第一个开始,每两个迭代会跳过一个。

我们可以记录实际的 i 变量的值来查看当前的索引值是怎么变化的。

011 - C++控制流语句(continue, break, return)

F5 运行你可以看到只运行在奇数迭代。换句话说,当 i 为 0 时,它不会运行,因为 0模2 的结果是 0,结果是 true,程序会执行 continue。当 i 是1 时,我们会输出记录,当等于 2 时,不会输出,当等于 3 时,我们会输出记录,当等于 4 时,不会输出,程序到不了 5,因为如果等于 5,我们就不会执行 for 循环了,因为这个 for 循环的条件就是 i 小于 5。

我们把程序搞更简单点。

011 - C++控制流语句(continue, break, return)

如果 i 大于2,就 continue。

当 i 等于 0 时,这里应该会打印信息,当等于 1 或者 2 时,程序也会打印 。但是当 i 等于 3 或者 4 时,程序不会打印信息。

好了,这就是 continue 的大致内容,它的意思就是当 continue 被运行时,它将跳到 for 循环的下一个送代。

我们通过设置断点来调试,这会让你更深入的了解这个语句。

011 - C++控制流语句(continue, break, return)

好了,continue 就介绍到这里。让我们来看看 break 。

break

如果我们把上面代码中的 continue 替换成 break,你会发现程序运行的结果看上去是一样的。

011 - C++控制流语句(continue, break, return)

然而,如果我回到第一个例子的情况,你可以看到情况是完全不一样的。

011 - C++控制流语句(continue, break, return)

程序什么都没有输出。

我们做一下修改。

011 - C++控制流语句(continue, break, return)

第一次迭代的时候,i 为 0, i+1 模 2 的结果是 1,所以 if 评估表达式的结果为 false,程序不会到达 break 语句。

第二次迭代的时候,i 为1, i+1 模 2 的结果是 0,所以 if 评估表达式的结果为 true,程序执行 break 语句,循环结束了。

如果我们放一个断点进行调试,你会看到我们第一次迭代不会触发 break,但在第二次我们运行这个 for 循环时,这里为 true, 然后运行了 break。程序直接跳转到 14 行。

011 - C++控制流语句(continue, break, return)

这就是 break,它可以让程序完全跳出 for 循环,当然这些控制流语句可以用在所有的循环语句中,所以它们在 for 循环、while 循环、do-while 循环中的运作方式是一样的。

好了,最后一个是 return。

return

当前主函数是一个需要返回 int 的函数(第四行有关键字 int ),所以我们不能只是写 return,我们需要写 return XXX。

我们试试只写 return ,按下 Ctrl+ F7

011 - C++控制流语句(continue, break, return)

011 - C++控制流语句(continue, break, return)

程序报错,你可以看到程序申明必须返回一个值。

我们做一些修改,return 0,然后运行程序,程序会立即终止,因为我们没有运行到 std::cin.get() 语句。这是我们的窗口保持打开的语句,它期待我们输入东西。

设置一个断点进行调试。

011 - C++控制流语句(continue, break, return)

当第二次迭代,程序执行到 return 0,你会看到,程序直接跳到花括号下面(第 15 行),因为函数现在结束了。

关于 return 语句,基本上就是这些了,需要注意的是,它不是必须在循环中使用,这点与 continue 和 break 不同。当然,如果你的函数要一个返回值,记得在 return 后面给它一个对应的值来返回。

后话

整体上说,这些控制语句就是控制你的代码如何 流动 的。控制语句结合循环语句和 if 语句一起完成程序运行,这些就是编程的基本逻辑,你可以使用这些控制语句语句决定下一行要执行什么代码,这些是可以改变你的程序行为的工具。

之后的系列中,我们会一直使用所有这些控制语句,并向你们展示它们在哪里使用以及怎么用。还可能向您展示如果不使用它们如何编写代码。

是编程的基本逻辑,你可以使用这些控制语句语句决定下一行要执行什么代码,这些是可以改变你的程序行为的工具。

之后的系列中,我们会一直使用所有这些控制语句,并向你们展示它们在哪里使用以及怎么用。还可能向您展示如果不使用它们如何编写代码。

好了,本期就是这些,下期再见。