diff --git a/docs/cpp/10.md b/docs/cpp/10.md index b9a1fa7d041ef7013508d19e0e0635d07e7c2a54..15eabcf4b846a3b5cc8557f27195caa2cdc32953 100644 --- a/docs/cpp/10.md +++ b/docs/cpp/10.md @@ -1,10 +1,10 @@ -# C++中的`for`循环 +# C++ 中的`for`循环 > 原文: [https://beginnersbook.com/2017/08/cpp-for-loop/](https://beginnersbook.com/2017/08/cpp-for-loop/) 循环用于重复执行语句块,直到满足特定条件。例如,当您显示从 1 到 100 的数字时,您可能希望将变量的值设置为 1 并将其显示 100 次,在每次循环迭代时将其值增加 1。 -在 C++中,我们有三种类型的基本循环:`for`,[`while`](https://beginnersbook.com/2017/08/cpp-while-loop/)和[`do-while`](https://beginnersbook.com/2017/08/cpp-do-while-loop/) 。在本教程中,我们将学习如何在 C++中使用`for` 循环。 +在 C++ 中,我们有三种类型的基本循环:`for`,[`while`](https://beginnersbook.com/2017/08/cpp-while-loop/)和[`do-while`](https://beginnersbook.com/2017/08/cpp-do-while-loop/) 。在本教程中,我们将学习如何在 C++ 中使用`for` 循环。 #### `for`循环的语法 @@ -18,19 +18,20 @@ for(initialization; condition ; increment/decrement) ## `for`循环的执行流程 当程序执行时,解释器总是跟踪将要执行的语句。我们将其称为控制流程或程序的执行流程。 + ![C++ for loop flow diagram](img/381b698f62d8866bf5d4ebd795d78400.jpg) **第一步:**在`for`循环中,初始化只发生一次,这意味着`for`循环的初始化部分只执行一次。 -**第二步:** `for`循环中的条件在每次循环迭代时进行计算,如果条件为真,则`for`循环体内的语句将被执行。一旦条件返回`false`,`for`循环中的语句就不会执行,并且控制在`for`循环后被转移到程序中的下一个语句。 +**第二步:** `for`循环中的条件在每次循环迭代时进行计算,如果条件为真,则`for`循环体内的语句将被执行。一旦条件返回`false`,`for`循环中的语句就不会执行,并且控制被转移到程序中`for`循环后的下一个语句。 -**第三步:**每次执行`for`循环体后,`for`循环的递增/递减部分执行更新循环计数器。 +**第三步:**每次执行`for`循环体后,`for`循环的递增/递减部分更新循环计数器。 -**第四步:**第三步后,控制跳转到第二步,重新评估条件。 +**第四步:**第三步后,控制跳转到第二步,重新求值条件。 > 从第二到第四的步骤重复,直到循环条件返回`false`。 -## C++中的简单`for`循环示例 +## C++ 中的简单`for`循环示例 这里,在循环初始化部分中,将变量`i`的值设置为 1,条件是`i <= 6`,并且在每次循环迭代中,`i`的值递增 1。 @@ -61,7 +62,7 @@ Value of variable i is: 6 ``` -## C++中的无限循环 +## C++ 中的无限循环 当循环重复执行并且永不停止时,循环被认为是无限的。这通常是错误的。当你在`for`循环中设置条件时它永远不会返回`false`,它就会变成无限循环。 diff --git a/docs/cpp/11.md b/docs/cpp/11.md index 74641c0676e8bf25a2698bf382db6d6497d12722..2e319b47f5d430aff27d05b65198415a2b6c8ee5 100644 --- a/docs/cpp/11.md +++ b/docs/cpp/11.md @@ -1,8 +1,8 @@ -# C++中的`while`循环 +# C++ 中的`while`循环 > 原文: [https://beginnersbook.com/2017/08/cpp-while-loop/](https://beginnersbook.com/2017/08/cpp-while-loop/) -在上一篇教程中,我们讨论了 [`for`循环](https://beginnersbook.com/2017/08/cpp-for-loop/) 。在本教程中,我们将讨论`while`循环。如前所述,循环用于重复执行程序语句块,直到给定的循环条件返回`false`。 +在上一篇教程中,我们讨论了[`for`循环](https://beginnersbook.com/2017/08/cpp-for-loop/) 。在本教程中,我们将讨论`while`循环。如前所述,循环用于重复执行程序语句块,直到给定的循环条件返回`false`。 #### `while`循环的语法 @@ -15,9 +15,9 @@ while(condition) ## 循环如何工作? -在`while`循环中,首先计算条件,如果它返回`true`,则`while`循环中的语句执行,这会重复发生,直到条件返回`false`。当条件返回`false`时,控制流退出循环并在`while`循环后跳转到程序中的下一个语句。 +在`while`循环中,首先计算条件,如果它返回`true`,则执行`while`循环中的语句,这会重复发生,直到条件返回`false`。当条件返回`false`时,控制流退出循环并跳转到程序中的`while`循环后的下一个语句。 -**注意:**使用`while`循环时要注意的重点是我们需要在`while`循环中使用递增或递减语句,以便循环变量在每次迭代时都会发生变化,并且在某些情况下返回`false`。这样我们就可以结束`while`循环的执行,否则循环将无限期地执行。 +**注意:**使用`while`循环时要注意的重点是,我们需要在`while`循环中使用递增或递减语句,以便循环变量在每次迭代时都会发生变化,并且在某些情况下返回`false`。这样我们就可以结束`while`循环的执行,否则循环将无限期地执行。 ### `while`循环流程图 @@ -53,9 +53,11 @@ Value of variable i is: 6 ## 无限循环 -永远停止的`while`循环被认为是无限循环,当我们以这样的方式给出条件以使它永远不会返回`false`时,循环变为无限并且无限地重复。 +永远不停止的`while`循环被认为是无限循环,当我们以这样的方式给出条件,以使它永远不会返回`false`时,循环变为无限并且无限地重复。 + **无限循环的一个例子:** -这个循环永远不会结束,因为我递减`i`的值为 1,因此条件`i <= 6`永远不会返回`false`。 + +这个循环永远不会结束,因为我从 1 开始递减`i`的值,因此条件`i <= 6`永远不会返回`false`。 ```cpp #include diff --git a/docs/cpp/8.md b/docs/cpp/8.md index d9f96877819515891dbc3cb07cfd080d36a7353d..d242bd6e2159e20442720f952330b9b3672037da 100644 --- a/docs/cpp/8.md +++ b/docs/cpp/8.md @@ -2,16 +2,19 @@ > 原文: [https://beginnersbook.com/2017/08/cpp-if-else-statement/](https://beginnersbook.com/2017/08/cpp-if-else-statement/) -有时我们只有在满足或不满足特定条件时才需要执行一个语句块。这被称为**决策**,因为我们在程序逻辑中做出决定后执行某个代码。对于 C++中的决策,我们有四种类型的控制语句(或控制结构),如下所示: +有时我们只有在满足或不满足特定条件时才需要执行一个语句块。这被称为**决策**,因为我们在程序逻辑中做出决定后执行某个代码。对于 C++ 中的决策,我们有四种类型的控制语句(或控制结构),如下所示: a)`if`语句 + b)嵌套`if`语句 + c)`if-else`语句 + d)`if-else-if`语句 -## C++中的`if`语句 +## C++ 中的`if`语句 -`if`语句包含条件,则后跟语句或一组语句,如下所示: +`if`语句包含条件,后跟语句或一组语句,如下所示: ```cpp if(condition){ @@ -55,10 +58,9 @@ int main(){ number is less than 100 ``` -## C++中的嵌套`if`语句 +## C++ 中的嵌套`if`语句 -当在另一个`if`语句中有`if`语句时,它被称为**嵌套`if`语句**。 -嵌套的结构如下所示: +当在另一个`if`语句中有`if`语句时,它被称为**嵌套`if`语句**。嵌套的结构如下所示: ```cpp if(condition_1) { @@ -70,7 +72,7 @@ if(condition_1) { } ``` -> 如果 condition_1 为 true,则执行 Statement1。只有条件(condition_1 和 condition_2)都为真时,Statement2 才会执行。 +> 如果`condition_1`为`true`,则执行`Statement1`。只有条件(`condition_1`和`condition_2`)都为真时,`Statement2`才会执行。 ### 嵌套`if`语句的示例 @@ -99,9 +101,9 @@ number is less than 100 number is greater than 50 ``` -## 在 C++中使用`if-else`语句 +## 在 C++ 中使用`if-else`语句 -有时你有一个条件,如果条件为真,你想要执行一段代码,如果相同的条件为假,则执行另一段代码。这可以使用`if-else`语句在 C++中实现。 +有时你有一个条件,如果条件为真,你想要执行一段代码,如果相同的条件为假,则执行另一段代码。这可以使用`if-else`语句在 C++ 中实现。 这是`if-else`语句的外观: @@ -144,7 +146,7 @@ int main(){ num is greater than or equal 50 ``` -## C++中的`if-else-if`语句 +## C++ 中的`if-else-if`语句 当我们需要检查多个条件时使用`if-else-if`语句。在这个控制结构中,我们只有一个`if`和一个`else`,但是我们可以有多个`else if`块。这是它的样子: diff --git a/docs/cpp/9.md b/docs/cpp/9.md index 589ea8029198fe00a434a4f9db92889759d78c95..80cfe84663eff129314ca36f594afb1fe6885d61 100644 --- a/docs/cpp/9.md +++ b/docs/cpp/9.md @@ -21,7 +21,7 @@ switch (variable or an integer expression) } ``` -即使`break`语句是可选的,`switch case`语句也主要用于`break`语句。我们将首先看到一个没有`break`语句的例子,然后我们将讨论`switch case`和`break` +即使`break`语句是可选的,`switch case`语句也大量使用`break`语句。我们将首先看到一个没有`break`语句的例子,然后我们将讨论`switch case`和`break`。 ## `switch-case`示例 @@ -50,11 +50,12 @@ int main(){ Default: Value is: 5 ``` -**说明**:在`swicth中我给出了一个表达式,你也可以给出变量。我给了表达式`num + 2`,其中`num`值是 5,并且在添加之后表达式得到 7。由于没有用值 4 定义的情况,所以执行了默认情况。 +**说明**:在`swicth`中我给出了一个表达式,你也可以给出变量。我给了表达式`num + 2`,其中`num`值是 5,并且在相加之后表达式得到 7。由于没有用值 4 定义的情况,所以执行了默认情况。 ## `switch-case`流程图 -它评估表达式或变量的值(基于交换器括号内给出的内容),然后根据结果执行相应的情况。 +它求值表达式或变量的值(基于`switch`括号内给出的内容),然后根据结果执行相应的情况。 + ![switch case flow diagram](img/4f4a0032c3c6f26d1bc5a76c8a08546f.jpg) ## `switch-case`中的`break`语句 @@ -87,7 +88,7 @@ Default ``` -在上面的程序中,我们在`switch`括号内部有变量`i`,这意味着无论变量`i`的值是什么,都会执行相应的`case`块。我们已将整数值 2 传递给`switch`,因此控制切换到`case` 2,但是在`case` 2 之后我们没有使用`break`语句导致流程继续到后续`case`直到结束。然而,这不是我们想要的,我们想要执行正确的大小写块并忽略其余的块。这个问题的解决方案是在每个`case`块之后使用`break`语句。 +在上面的程序中,我们在`switch`括号内部有变量`i`,这意味着无论变量`i`的值是什么,都会执行相应的`case`块。我们已将整数值 2 传递给`switch`,因此控制流切换到`case 2`,但是在`case 2` 之后我们没有使用`break`语句,导致控制流继续到后续`case`直到结束。然而,这不是我们想要的,我们想要执行正确`case`块并忽略其余的块。这个问题的解决方案是在每个`case`块之后使用`break`语句。 当您希望程序流从`switch`主体中出来时,使用`break`语句。每当在`switch`主体中遇到`break`语句时,执行流程将直接从`switch`中出来,忽略其余的情况。这就是您必须使用`break`语句结束每个`case`块的原因。 @@ -124,16 +125,17 @@ int main(){ Case2 ``` -现在您可以看到只有`case` 2 被执行,其余的后续`case`被忽略了。 +现在您可以看到只有`case 2`被执行,其余的后续`case`被忽略了。 + +**为什么我在`default`块不使用`break`语句?** -**为什么我默认后不使用`break`语句?** 控制流本身会在默认情况下从`switch`中出来,所以我之后没有使用`break`语句,但是如果你想要它可以使用它,那么这样做是没有害处的。 ## 重要笔记 1)`case`并不总是需要顺序`1,2,3`等。它可以在`case`关键字后面包含任何整数值。此外,`case`不需要始终按升序排列,您可以根据要求以任何顺序指定它们。 -2)您也可以在`switch-case`中使用字符。例如 - +2)您也可以在`switch-case`中使用字符。例如: ```cpp #include