提交 11176ffe 编写于 作者: W wizardforcel

2019-08-26 10:21:59

上级 62e833f3
# 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`,它就会变成无限循环。
......
# 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 <iostream>
......
......@@ -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`块。这是它的样子:
......
......@@ -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 <iostream>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册