Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
beginnersbook-zh
提交
80168b86
B
beginnersbook-zh
项目概览
OpenDocCN
/
beginnersbook-zh
大约 1 年 前同步成功
通知
0
Star
107
Fork
30
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
beginnersbook-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
80168b86
编写于
8月 26, 2019
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2019-08-26 11:01:53
上级
11176ffe
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
46 addition
and
40 deletion
+46
-40
docs/cpp/12.md
docs/cpp/12.md
+4
-3
docs/cpp/13.md
docs/cpp/13.md
+3
-3
docs/cpp/14.md
docs/cpp/14.md
+6
-6
docs/cpp/15.md
docs/cpp/15.md
+3
-4
docs/cpp/17.md
docs/cpp/17.md
+13
-10
docs/cpp/18.md
docs/cpp/18.md
+7
-6
docs/cpp/19.md
docs/cpp/19.md
+6
-6
docs/cpp/21.md
docs/cpp/21.md
+4
-2
未找到文件。
docs/cpp/12.md
浏览文件 @
80168b86
...
...
@@ -2,7 +2,7 @@
> 原文: [https://beginnersbook.com/2017/08/cpp-do-while-loop/](https://beginnersbook.com/2017/08/cpp-do-while-loop/)
正如上一篇关于
[
`while`循环
](
https://beginnersbook.com/2017/08/cpp-while-loop/
)
的教程中所讨论的,循环用于重复一个语句块,直到给定的循环条件返回
`false`
。在本教程中,我们将看到
`do-while`
循环。
`do-while`
循环类似于 while 循环,但它们之间存在差异:在
`while`
循环中,首先计算条件,然后执行循环体内的语句,另一方面在
`do-while`
循环中执行 - 首先执行,然后评估
条件。
正如上一篇关于
[
`while`循环
](
https://beginnersbook.com/2017/08/cpp-while-loop/
)
的教程中所讨论的,循环用于重复一个语句块,直到给定的循环条件返回
`false`
。在本教程中,我们将看到
`do-while`
循环。
`do-while`
循环类似于
`while`
循环,但它们之间存在差异:在
`while`
循环中,首先计算条件,然后执行循环体内的语句,另一方面在
`do-while`
循环中执行 - 首先执行,然后求值
条件。
#### `do-while`循环的语法
...
...
@@ -15,10 +15,11 @@ do
## `do-while`循环如何工作?
首先,循环内的语句执行,然后条件得到评估,如果条件返回
`true`
,则控制跳转到
`do`
以进一步重复执行它,这会重复发生,直到条件返回
`false`
。一旦条件返回
`false`
,控制就会在
`do-while`
之后跳转到程序中的下一个语句。
首先,循环内的语句执行,然后条件得到求值,如果条件返回
`true`
,则控制跳转到
`do`
以进一步重复执行它,这会重复发生,直到条件返回
`false`
。一旦条件返回
`false`
,控制就会跳转到程序中
`do-while`
之后的下一个语句。
![
C++ do while loop flow diagram
](
img/8a5f1d9785c32edcb5c78c6f602d2b04.jpg
)
## C++中的`do-while`循环示例
## C++
中的`do-while`循环示例
```
cpp
#include <iostream>
...
...
docs/cpp/13.md
浏览文件 @
80168b86
# C++中的`continue`语句
# C++
中的`continue`语句
> 原文: [https://beginnersbook.com/2017/08/cpp-continue-statement/](https://beginnersbook.com/2017/08/cpp-continue-statement/)
在循环内使用
`continue`
语句。每当在循环内遇到
`continue`
语句时,控制流直接跳转到循环的开头以进行下一次迭代,跳过循环体内
语句的执行以进行当前迭代
。
在循环内使用
`continue`
语句。每当在循环内遇到
`continue`
语句时,控制流直接跳转到循环的开头以进行下一次迭代,跳过循环体内
当前迭代的语句的执行
。
#### `continue`语句的语法
...
...
@@ -12,7 +12,7 @@ continue;
## 示例:`for`循环中的`continue`语句
正如你可以看到输出缺少值 3,但循环迭代
`num`
值 0 到 6。这是因为我们在循环中设置了一个条件,这
样就可以了
当
`num`
值等于 3 时遇到语句。因此,对于此迭代,循环跳过
`cout`
语句并开始下一次循环迭代。
正如你可以看到输出缺少值 3,但循环迭代
`num`
值 0 到 6。这是因为我们在循环中设置了一个条件,这
种情况下
当
`num`
值等于 3 时遇到语句。因此,对于此迭代,循环跳过
`cout`
语句并开始下一次循环迭代。
```
cpp
#include <iostream>
...
...
docs/cpp/14.md
浏览文件 @
80168b86
# 在 C++中使用`break`语句
# 在 C++
中使用`break`语句
> 原文: [https://beginnersbook.com/2017/08/cpp-break-statement/](https://beginnersbook.com/2017/08/cpp-break-statement/)
**
中断
语句**
用于以下两种情况:
**
`break`
语句**
用于以下两种情况:
a)使用
`break`
语句立即退出循环。每当在循环内遇到
`break`
语句时,控制流就会直接从循环中退出。它与
`if`
语句一起使用,只
要
在循环内部使用(参见下面的示例),以便它仅在特定条件下发生。
a)使用
`break`
语句立即退出循环。每当在循环内遇到
`break`
语句时,控制流就会直接从循环中退出。它与
`if`
语句一起使用,只
能
在循环内部使用(参见下面的示例),以便它仅在特定条件下发生。
b)用于
箱体后的
`switch`
箱控制结构。通常,在
`switch case`
中的所有情况都跟一个
`break`
语句,以避免后续的情况(参见下面的例子)执行。无论何时在
`switch-case`
块中遇到,控制器
都从
`switch-case`
体中出来。
b)用于
`switch-case`
控制结构。通常,在
`switch case`
中的所有情况都跟一个
`break`
语句,以避免后续的情况(参见下面的例子)执行。无论何时在
`switch-case`
块中遇到,控制流
都从
`switch-case`
体中出来。
#### `break`语句的语法
...
...
@@ -20,7 +20,7 @@ break;
## 示例 - 在`while`循环中使用`break`语句
在下面的示例中,我们有一个从 10 到 200 运行的
`while`
循环,但由于我们有一个在循环计数器
变量值达到 12 时遇到的
`break`
语句,循环终止并且控制流跳转到程序中的下一个语句之后循环体
。
在下面的示例中,我们有一个从 10 到 200 运行的
`while`
循环,但由于我们有一个在循环计数器
,变量值达到 12 时遇到
`break`
语句,循环终止并且控制流跳转到程序中循环体之后的下一个语句
。
```
cpp
#include <iostream>
...
...
@@ -104,7 +104,7 @@ Case 2
Hey
,
I
'
m
out
of
the
switch
case
```
在这个例子中,我们在每个
`case`
块之后都有
`break`
语句,这是因为如果我们没有它,那么后续的
`case`
块也会执行。
不间断
的同一程序的输出将是:
在这个例子中,我们在每个
`case`
块之后都有
`break`
语句,这是因为如果我们没有它,那么后续的
`case`
块也会执行。
没有
`break`
的同一程序的输出将是:
```
cpp
Case
2
...
...
docs/cpp/15.md
浏览文件 @
80168b86
# C++中的`goto`语句
# C++
中的`goto`语句
> 原文: [https://beginnersbook.com/2017/08/cpp-goto-statement/](https://beginnersbook.com/2017/08/cpp-goto-statement/)
...
...
@@ -25,7 +25,7 @@ label2:
> `goto`语句几乎从不在任何开发中使用,因为它们很复杂,使得程序的可读性更低,更容易出错。代替`goto`,你可以使用[`continue`](https://beginnersbook.com/2017/08/cpp-continue-statement/)和[`break`语句](https://beginnersbook.com/2017/08/cpp-break-statement/)。
## C++中`goto`语句的示例
## C++
中`goto`语句的示例
```
cpp
#include <iostream>
...
...
@@ -45,8 +45,7 @@ int main(){
}
```
**
输出:
**
**输出:**
```
cpp
Enter
a
number
:
42
...
...
docs/cpp/17.md
浏览文件 @
80168b86
# C++中的函数
# C++
中的函数
> 原文: [https://beginnersbook.com/2017/08/cpp-functions/](https://beginnersbook.com/2017/08/cpp-functions/)
函数是用于执行特定任务的代码块,例如,假设您正在编写一个大型 C++程序,并且在该程序中,您希望多次执行特定任务,例如显示从 1 到 10 的值,为了做到这一点,你必须编写几行代码,每次显示值时都需要重复这些行。另一种方法是在函数内写入这些行,并在每次要显示值时调用该函数。这将使您的代码简单,可读和可重用。
函数是用于执行特定任务的代码块,例如,假设您正在编写一个大型 C++
程序,并且在该程序中,您希望多次执行特定任务,例如显示从 1 到 10 的值,为了做到这一点,你必须编写几行代码,每次显示值时都需要重复这些行。另一种方法是在函数内写入这些行,并在每次要显示值时调用该函数。这将使您的代码简单,可读和可重用。
#### 函数的语法
...
...
@@ -73,7 +73,8 @@ return_type function_name(parameter_list);
**注意:**
在提供
`parameter_list`
时,您可以避免参数名称,就像我在上面的示例中所做的那样。我给了
`int sum(int,int);`
而不是
`int sum(int num1,int num2);`
。
**函数定义:**
编写函数的全部函数称为定义函数。
**函数定义:**
编写函数的全部称为定义函数。
**函数定义语法:**
```
cpp
...
...
@@ -89,23 +90,25 @@ return_type function_name(parameter_list) {
function_name
(
parameters
);
```
现在我们已经理解了函数的
**工作
,让我们看看 C++中的函数类型**
现在我们已经理解了函数的
**工作
原理**
,让我们看看 C++ 中的函数类型。
## 函数类型
我们在 C++中有两种类型的函数:
![
C++ types of functions: built-in and user-defined
](
img/78f29a2371b2731fd049ba6271ab480a.jpg
)
1)内置函数
2)用户定义的函数
### 1)内置函数
内置函数也称为库函数。我们不需要声明和定义这些函数,因为它们已经在 C++库中编写,例如
`iostream`
,
`cmath`
等。我们可以在需要时直接调用它们。
内置函数也称为库函数。我们不需要声明和定义这些函数,因为它们已经在 C++
库中编写,例如
`iostream`
,
`cmath`
等。我们可以在需要时直接调用它们。
#### 示例:C++内置函数示例
#### 示例:C++
内置函数示例
这里我们使用内置函数
`pow(x, y)`
,它是
`x`
的
幂
`y`
。此函数在
`cmath`
头文件中声明,因此我们使用
`#include`
指令将该文件包含在我们的程序中。
这里我们使用内置函数
`pow(x, y)`
,它是
`x`
的
`y`
次幂
。此函数在
`cmath`
头文件中声明,因此我们使用
`#include`
指令将该文件包含在我们的程序中。
```
cpp
#include <iostream>
...
...
@@ -121,8 +124,7 @@ int main(){
}
```
**
输出:
**
**输出:**
```
cpp
32
...
...
@@ -131,7 +133,8 @@ int main(){
### 2)用户定义的函数
![
C++ functions
](
img/54490c8094bd9a1485e3b26ccf406a2a.jpg
)
我们已经看过用户定义的函数,我们在本教程开头给出的示例是用户定义函数的示例。我们在程序中声明和写入的函数是用户定义的函数。让我们看另一个用户定义函数的例子。
我们已经看过用户定义的函数,我们在本教程开头给出的示例是用户定义函数的示例。我们在程序中声明和编写的函数是用户定义的函数。让我们看另一个用户定义函数的例子。
#### 用户定义的函数
...
...
docs/cpp/18.md
浏览文件 @
80168b86
# C++函数中的默认参数
# C++
函数中的默认参数
> 原文: [https://beginnersbook.com/2017/08/cpp-default-arguments/](https://beginnersbook.com/2017/08/cpp-default-arguments/)
在调用函数时不提供任何参数或仅提供少量参数时,将使用默认参数。在编译程序期间使用默认参数。例如,假设您有一个
[
用户定义的函数
](
https://beginnersbook.com/2017/08/cpp-functions/
)
`sum`
声明如下:
`int sum(int a=10, int b=20)`
,现在在调用此函数时,您不提供任何参数,简称为
`sum()`
;那么在这种情况下结果将是 30,编译器使用函数签名中声明的默认值 10 和 20。如果你只传递一个这样的参数:
`sum(80)`
那么结果将是 100,使用传递的参数 80 作为第一个值,20 个从默认参数中获取。
在调用函数时不提供任何参数或仅提供少量参数时,将使用默认参数。在编译程序期间使用默认参数。例如,假设您有一个
[
用户定义的函数
](
https://beginnersbook.com/2017/08/cpp-functions/
)
`sum`
声明如下:
`int sum(int a=10, int b=20)`
,现在在调用此函数时,您不提供任何参数,简称为
`sum()`
;那么在这种情况下结果将是 30,编译器使用函数签名中声明的默认值 10 和 20。如果你只传递一个这样的参数:
`sum(80)`
那么结果将是 100,使用传递的参数 80 作为第一个值,20 个从默认参数中获取。
## 示例:C++中的默认参数
## 示例:C++
中的默认参数
```
cpp
#include <iostream>
...
...
@@ -50,10 +50,11 @@ int sum(int a, int b, int c){
正如您在上面的示例中所看到的,我在函数声明期间仅为两个参数
`b`
和
`c`
分配了默认值。您可以为所有参数或仅选定的参数指定默认值,但在仅为某些参数指定默认值时,请记住以下规则:
> **如果为参数指定默认值,则
后续参数必须为其
分配默认值,否则将出现编译错误。**
> **如果为参数指定默认值,则
必须为后续参数
分配默认值,否则将出现编译错误。**
**例如:**
让我们看一些有效和无效的案例。
**有效:**
以下函数声明有效 -
**有效:**
以下函数声明有效:
```
cpp
int
sum
(
int
a
=
10
,
int
b
=
20
,
int
c
=
30
);
...
...
@@ -62,7 +63,7 @@ int sum(int a, int b, int c=30);
```
**无效:**
以下函数声明无效
-
**无效:**
以下函数声明无效
:
```
cpp
/* Since a has default value assigned, all the
...
...
docs/cpp/19.md
浏览文件 @
80168b86
# C++递归示例
# C++
递归示例
> 原文: [https://beginnersbook.com/2017/08/cpp-recursion/](https://beginnersbook.com/2017/08/cpp-recursion/)
函数调用自身的过程称为递归,相应的函数称为
**递归函数**
。理解递归的流行示例是阶乘函数。
**阶乘函数:**
`f(n) = n * f(n-1)`
,基本条件:如果
`n <= 1`
则
`f(n)= 1`
。不要担心我们将讨论什么是基本条件
为什么它很重要
**阶乘函数:**
`f(n) = n * f(n-1)`
,基本条件:如果
`n <= 1`
则
`f(n)= 1`
。不要担心我们将讨论什么是基本条件
,以及为什么它很重要。
在下图中。我已经证明了在函数达到基本条件之前,阶乘函数如何调用自身。
![
C++ recursion
](
img/7e7491750402933465fdf20aa6556520.jpg
)
让我们用 C++程序解决问题。
让我们用 C++
程序解决问题。
## C++递归示例:阶乘
## C++
递归示例:阶乘
```
cpp
#include <iostream>
...
...
@@ -60,9 +60,9 @@ if (n <= 1)
**直接递归:**
当函数调用自身时,它被称为直接递归,我们上面看到的例子是直接递归示例。
**间接递归:**
当函数调用另一个函数并且该函数调用
调用函数时,这称为间接递归。例如:函数 A 调用函数 B,函数 B 调用函数 A.
**间接递归:**
当函数调用另一个函数并且该函数调用
这个函数时,这称为间接递归。例如:函数 A 调用函数 B,函数 B 调用函数 A。
### C++中的间接递归示例
### C++
中的间接递归示例
```
cpp
#include <iostream>
...
...
docs/cpp/21.md
浏览文件 @
80168b86
# C++中的数组
# C++
中的数组
> 原文: [https://beginnersbook.com/2017/08/cpp-arrays/](https://beginnersbook.com/2017/08/cpp-arrays/)
数组是存储在连续内存位置的类似项的集合。在编程中,有时一个简单的变量不足以容纳所有数据。例如,假设我们要存储 500 名学生的标记,这个任务有 500 个不同的变量是不可行的,我们可以定义一个大小为 500 的数组,可以保存所有学生的标记。
数组是存储在连续内存位置的类似项的集合。在编程中,有时一个简单的变量不足以容纳所有数据。例如,假设我们要存储 500 名学生的信息,这个任务有 500 个不同的变量是不可行的,我们可以定义一个大小为 500 的数组,可以保存所有学生的信息。
![
C++ arrays
](
img/7fa84216b7da3bc81c48ff11c995f4c3.jpg
)
## 用 C++声明一个数组
有几种方法可以声明一个数组。
方法 1:
```
cpp
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录