生活随笔
收集整理的這篇文章主要介紹了
go之for循环
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、基于計數器的迭代
for 初始化語句; 條件語句; 修飾語句{}
package mainimport "fmt"func main(){for i:=0;i<10;i++{fmt.Print(i)}fmt.Println()/*執行步驟:1、 初始化,條件判斷,條件成立執行循環體,不成立結束for循環2、條件成立執行循環體,i++,條件判斷3、條件成立執行循環體,i++,條件判斷4、...5、條件不成立結束循環體*/// 求 100 以內偶數之和var sum int = 0for i:=0;i <= 100;i++{if i%2 == 0{ // 取余為0 則為偶sum += i}}fmt.Println(sum)// 99乘法表for i:=1;i<10;i++{for j:=1 ;j<=i;j++{fmt.Printf("%d * %d = %d ",j,i,j*i)}fmt.Println("")}
}
0123456789
二、基于條件判斷的迭代
for 條件語句{}
package mainimport "fmt"func main(){// 求 100以內 奇數之和var sum,i int // 多相同類型變量聲明i = 0for i<=100{if i % 2 != 0{sum += i}i++}fmt.Println(sum)// 也可以這樣var sum1,j intj = 0for true{ // 條件永遠為 trueif j % 2 != 0{sum1 += j}j++if j > 100{break // 中斷當前循環,或跳出當前循環體}}fmt.Println(sum1)
}
三、無限循環
for{}
// 與 for true {},行為是一樣的
//
package mainimport "fmt"func main(){// 輸入內容并打印在終端var content stringfor {fmt.Print("請輸入內容:")fmt.Scanf("%s\n",&content) // &content 是content的內存地址fmt.Println("你輸入的內容是:",content)}
}
四、for-range語法
- 格式
這是 Go 特有的一種的迭代結構,您會發現它在許多情況下都非常有用。它可以迭代任何一個集合(包括數組和 map,詳見第 7 和 8 章)。語法上很類似其它語言中 foreach 語句,但您依舊可以獲得每次迭代所對應的索引
for ix, val := range coll { }
package mainimport ("fmt"
)func main(){str := "jmz is good man"for index,v := range str{// v 是 rune 類型,所以需要轉化成string 類型fmt.Println(index , " - " , string(v))}str1:= "from 中國"for _,v := range str1{ // _ 省略 第一個返回參數fmt.Println(v, " - ", string(v))}// 關于rune類型 一個字符串是unicode編碼的字符。// 下面的結果處理與上面的一樣value := []rune(str1) // 切片類型 ,將str1 轉成切片類型i := 0for i<len(value){fmt.Println(string(value[i]))i++}
}
package mainimport "fmt"func main(){str := "上海自來水來自海上,are you know?hahahah"count := make(map[string]int) // map 類型(引用類型)/*// count := make(map[string]int) 相當于:var count map[string]intcount = make(map[string]int)// 后面會著重講解*/for _,v := range str{count[string(v)] += 1 // 將rune 轉化成string : string(v)}for k,v := range count{ // map 類型也可以for-rangefmt.Println(k," - ",v)}
}
五、Break 與 continue
break: 跳出當前循環體(結束循環體)
continue: 跳過本次循環,進入下一次循環
package mainimport "fmt"func main(){for i:= 0;i<10;i++{if i == 3{continue}if i == 6{break}fmt.Println(i)}
}
輸出結果:
0
1
2
4
5
猜猜結果
for i:=0;i<10;i++{var j intfmt.Println(j)j = 5
}
10個0,j 是局部變量,每次循環都會重新聲明,初始值,所以每次都是0
for i:=0;;i++{fmt.Println(i)
}
無限循環,一直累加
for i:=0;i<10;{fmt.Println(i)
}
無限循環,都是0,沒有累加
for i,j:=2,10;i<j;{fmt.Println(i," - ",j)i *= 2j ++}
轉載于:https://www.cnblogs.com/xiaobaiskill/p/10595334.html
總結
以上是生活随笔為你收集整理的go之for循环的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。