From 2221a213049d31f5e5fe9256aa86d0ebb83ae60d Mon Sep 17 00:00:00 2001 From: xiaohulu Date: Thu, 30 Aug 2018 07:46:03 +0800 Subject: [PATCH] update ch03-05-control-flow.md --- src/ch03-05-control-flow.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ch03-05-control-flow.md b/src/ch03-05-control-flow.md index 1ef2a8b..c0295d7 100644 --- a/src/ch03-05-control-flow.md +++ b/src/ch03-05-control-flow.md @@ -133,7 +133,7 @@ $ cargo run number is divisible by 3 ``` -当执行这个程序时,它按顺序检查每个 `if` 表达式并执行第一个条件为真的代码块。注意即使 6 可以被 2 整除,也不会输出 `number is divisible by 2`,更不会出现 `else` 块中的 `number is not divisible by 4, 3, or 2`。原因是 Rust 只会执行第一个条件为真的代码块,并且一旦它找到一个以后,甚至就不会检查剩下的条件了。 +当执行这个程序时,它按顺序检查每个 `if` 表达式并执行第一个条件为真的代码块。注意即使 6 可以被 2 整除,也不会输出 `number is divisible by 2`,更不会输出 `else` 块中的 `number is not divisible by 4, 3, or 2`。原因是 Rust 只会执行第一个条件为真的代码块,并且一旦它找到一个以后,甚至都不会检查剩下的条件了。 使用过多的 `else if` 表达式会使代码显得杂乱无章,所以如果有多于一个 `else if` 表达式,最好重构代码。为此,第六章会介绍一个强大的 Rust 分支结构(branching construct),叫做 `match`。 @@ -156,7 +156,7 @@ fn main() { } ``` -示例 3-2:将 `if` 表达式的返回值赋值给一个变量 +示例 3-2:将 `if` 表达式的返回值赋给一个变量 `number` 变量将会绑定到表示 `if` 表达式结果的值上。运行这段代码看看会出现什么: @@ -242,7 +242,7 @@ again! ^Cagain! ``` -符号 `^C` 代表你在这按下了ctrl-c。在 `^C` 之后你可能看到也可能看不到 `again!` ,这依赖于在接收到终止信号时代码执行到了循环的何处。 +符号 `^C` 代表你在这按下了ctrl-c。在 `^C` 之后你可能看到也可能看不到 `again!` ,这取决于在接收到终止信号时代码执行到了循环的何处。 幸运的是,Rust 提供了另一种更可靠的退出循环的方式。可以使用 `break` 关键字来告诉程序何时停止循环。回忆一下在第二章猜猜看游戏的 “猜测正确后退出” 部分使用过它来在用户猜对数字赢得游戏后退出程序。 @@ -331,7 +331,7 @@ fn main() { 例如,在示例 3-4 的代码中,如果从数组 `a` 中移除一个元素但忘记将条件更新为 `while index < 4`,代码将会 panic。使用 `for` 循环的话,就不需要惦记着在改变数组元素个数时修改其他的代码了。 -`for` 循环的安全性和简洁性使得它成为 Rust 中使用最多的循环结构。即使是在想要循环执行代码特定次数时,例如示例 3-3 中使用 `while` 循环的倒计时例子,大部分 Rustacean 也会使用 `for` 循环。这么做的方式是使用 `Range`,它是标准库提供类型,用来生成从一个数字开始到另一个数字之前结束的所有数字的序列。 +`for` 循环的安全性和简洁性使得它成为 Rust 中使用最多的循环结构。即使是在想要循环执行代码特定次数时,例如示例 3-3 中使用 `while` 循环的倒计时例子,大部分 Rustacean 也会使用 `for` 循环。这么做的方式是使用 `Range`,它是标准库提供的类型,用来生成从一个数字开始到另一个数字之前结束的所有数字的序列。 下面是一个使用 `for` 循环来倒计时的例子,它还使用了一个我们还未讲到的方法,`rev`,用来反转 range: @@ -350,7 +350,7 @@ fn main() { ## 总结 -你做到了!这是一个大章节:你学习了变量、标量和复合数据类型、函数、注释、 `if` 表达式和循环!如果你想要实践本章讨论的概念,尝试构建如下的程序: +你做到了!这是一个大章节:你学习了变量、标量和复合数据类型、函数、注释、 `if` 表达式和循环!如果你想要实践本章讨论的概念,尝试构建如下程序: * 相互转换摄氏与华氏温度。 * 生成 n 阶斐波那契数列。