Skip to content

Commit 30f21b9

Browse files
committed
添加if,if else,for实例
1 parent 82f5a35 commit 30f21b9

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed

README.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ Go语言快速入门
2727
- [基本类型](#基本类型)
2828
- [常量变量](#常量变量)
2929
- [语言运算符](#语言运算符)
30+
- [流程控制语句](#流程控制语句)
3031
- [资源导航](#资源导航)
3132

3233
<!-- /TOC -->
@@ -1667,6 +1668,120 @@ func main() {
16671668
16681669
</details>
16691670
1671+
## 流程控制语句
1672+
1673+
<details>
1674+
<summary>for 循环语句</summary>
1675+
1676+
```go
1677+
package main
1678+
import "fmt"
1679+
func main() {
1680+
sum := 0
1681+
// 如果条件表达式的值变为 false,那么迭代将终止。
1682+
for i := 0; i < 10; i++ {
1683+
sum += i
1684+
}
1685+
fmt.Println(sum)
1686+
1687+
// 循环初始化语句和后置语句都是可选的。
1688+
// for 是 Go 的 “while”
1689+
// 基于此可以省略分号:C 的 while 在 Go 中叫做 for 。
1690+
// 如果省略了循环条件,循环就不会结束,因此可以用更简洁地形式表达死循环。
1691+
sum2 := 1
1692+
for ; sum2 < 1000; {
1693+
sum2 += sum2
1694+
}
1695+
fmt.Println(sum2)
1696+
}
1697+
```
1698+
基本的 for 循环包含三个由分号分开的组成部分:
1699+
1700+
1. 初始化语句:在第一次循环执行前被执行
1701+
1. 循环条件表达式:每轮迭代开始前被求值
1702+
1. 后置语句:每轮迭代后被执行
1703+
1704+
</details>
1705+
1706+
<details>
1707+
<summary>if 语句</summary>
1708+
1709+
```go
1710+
package main
1711+
import (
1712+
"fmt"
1713+
"math"
1714+
)
1715+
func sqrt(x float64) string {
1716+
if x < 0 {
1717+
return sqrt(-x) + "i"
1718+
}
1719+
return fmt.Sprint(math.Sqrt(x))
1720+
}
1721+
func main() {
1722+
fmt.Println(sqrt(2), sqrt(-4))
1723+
}
1724+
```
1725+
1726+
就像 for 循环一样,Go 的 if 语句也不要求用 ( ) 将条件括起来,同时, { } 还是必须有的。
1727+
1728+
**if 的便捷语句**
1729+
1730+
```go
1731+
package main
1732+
import (
1733+
"fmt"
1734+
"math"
1735+
)
1736+
1737+
func pow(x, n, lim float64) float64 {
1738+
if v := math.Pow(x, n); v < lim {
1739+
return v
1740+
}
1741+
return lim
1742+
}
1743+
func main() {
1744+
fmt.Println(
1745+
pow(3, 2, 10),
1746+
pow(3, 3, 20),
1747+
)
1748+
}
1749+
```
1750+
1751+
</details>
1752+
1753+
<details>
1754+
<summary>if 和 else 语句</summary>
1755+
1756+
```go
1757+
package main
1758+
import (
1759+
"fmt"
1760+
"math"
1761+
)
1762+
func pow(x, n, lim float64) float64 {
1763+
if v := math.Pow(x, n); v < lim {
1764+
return v
1765+
} else {
1766+
fmt.Printf("%g >= %g\n", v, lim)
1767+
}
1768+
// 这里开始就不能使用 v 了
1769+
return lim
1770+
}
1771+
1772+
func main() {
1773+
// 两个 pow 调用都在 main 调用 fmt.Println 前执行完毕了。
1774+
fmt.Println(
1775+
pow(3, 2, 10),
1776+
pow(3, 3, 20),
1777+
)
1778+
}
1779+
```
1780+
1781+
if 的便捷语句定义的变量同样可以在任何对应的 else 块中使用。
1782+
1783+
</details>
1784+
16701785
## 资源导航
16711786
16721787
<details>

0 commit comments

Comments
 (0)