go for 循环遍历数组并排序_10. Go语言流程控制:for 循环
本文原文:http://golang.iswbm.com
Github:http://github.com/iswbm/GolangCodingTime
Go里的流程控制方法還是挺豐富,整理了下有如下這么多種:
- if - else 條件語句
- switch - case 選擇語句
- for - range 循環語句
- goto 無條件跳轉語句
- defer 延遲執行
上一篇講了switch - case 選擇語句,今天先來講講 for 循環語句。
0. 語句模型
這是 for 循環的基本模型。
for [condition | ( init; condition; increment ) | Range] {statement(s); }可以看到 for 后面,可以接三種類型的表達式。
但其實還有第四種
1. 接一個條件表達式
這個例子會打印 1 到 5 的數值。
a := 1 for a <= 5 {fmt.Println(a)a ++ }輸出如下
1 2 3 4 52. 接三個表達式
for 后面,緊接著三個表達式,使用 ; 分隔。
這三個表達式,各有各的用途
- 第一個表達式:初始化控制變量,在整個循環生命周期內,只運行一次;
- 第二個表達式:設置循環控制條件,當返回true,繼續循環,返回false,結束循環;
- 第三個表達式:每次循完開始(除第一次)時,給控制變量增量或減量。
這邊的例子和上面的例子,是等價的。
import "fmt"func main() {for i := 1; i <= 5; i++ {fmt.Println(i)} }輸出如下
1 2 3 4 52. 不接表達式:無限循環
在 Go 語言中,沒有 while 循環,如果要實現無限循環,也完全可以 for 來實現。
當你不加任何的判斷條件時, 就相當于你每次的判斷都為 true,程序就會一直處于運行狀態,但是一般我們并不會讓程序處于死循環,在滿足一定的條件下,可以使用關鍵字 break 退出循環體,也可以使用 continue 直接跳到下一循環。
下面兩種寫法都是無限循環的寫法。
for {代碼塊 }// 等價于 for ;; {代碼塊 }舉個例子
import "fmt"func main() {var i int = 1for {if i > 5 {break}fmt.Printf("hello, %dn", i)i++} }輸出如下
hello, 1 hello, 2 hello, 3 hello, 4 hello, 53. 接 for-range 語句
遍歷一個可迭代對象,是一個很常用的操作。在 Go 可以使用 for-range 的方式來實現。
range 后可接數組、切片,字符串等
由于 range 會返回兩個值:索引和數據,若你后面的代碼用不到索引,需要使用 _ 表示 。
import "fmt"func main() {myarr := [...]string{"world", "python", "go"}for _, item := range myarr {fmt.Printf("hello, %sn", item)} }輸出如下
hello, world hello, python hello, go如果你用一個變量來接收的話,接收到的是索引
import "fmt"func main() {myarr := [...]string{"world", "python", "go"}for i := range myarr {fmt.Printf("hello, %vn", i)} }輸出如下
hello, 0 hello, 1 hello, 2好了,今天的文章就到這里了。
若今天的分享對你有幫助,不如點個贊,支持一下?
總結
以上是生活随笔為你收集整理的go for 循环遍历数组并排序_10. Go语言流程控制:for 循环的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 四川男孩高考700分数学满分:喜欢打游戏
- 下一篇: 马斯克无奈!18岁的儿子成功变性