前几篇文章分享了 array 数组、slice 切片、map 集合,这篇文章分享如何循环获取里面的元素,同时也是对前几篇文章的复习。
本篇文章会用到的关键字 for、range、break、continue、goto、switch。
//demo_18.gopackage mainimport ("fmt")func main() {person := [3] string {"Tom", "Aaron", "John"}fmt.Printf("len=%d cap=%d array=%v\n", len(person), cap(person), person)fmt.Println("")//循环for k, v := range person {fmt.Printf("person[%d]: %s\n", k, v)}fmt.Println("")for i := range person {fmt.Printf("person[%d]: %s\n", i, person[i])}fmt.Println("")for i := 0; i < len(person); i++ {fmt.Printf("person[%d]: %s\n", i, person[i])}fmt.Println("")//使用空白符for _, name := range person {fmt.Println("name :", name)}}
运行结果:
//demo_19.gopackage mainimport ("fmt")func main() {person := [] string {"Tom", "Aaron", "John"}fmt.Printf("len=%d cap=%d slice=%v\n", len(person), cap(person), person)fmt.Println("")//循环for k, v := range person {fmt.Printf("person[%d]: %s\n", k, v)}fmt.Println("")for i := range person {fmt.Printf("person[%d]: %s\n", i, person[i])}fmt.Println("")for i := 0; i < len(person); i++ {fmt.Printf("person[%d]: %s\n", i, person[i])}fmt.Println("")//使用空白符for _, name := range person {fmt.Println("name :", name)}}
运行结果:
//demo_20.gopackage mainimport ("fmt")func main() {person := map[int]string{1 : "Tom",2 : "Aaron",3 : "John",}fmt.Printf("len=%d map=%v\n", len(person), person)fmt.Println("")//循环for k, v := range person {fmt.Printf("person[%d]: %s\n", k, v)}fmt.Println("")for i := range person {fmt.Printf("person[%d]: %s\n", i, person[i])}fmt.Println("")for i := 1; i <= len(person); i++ {fmt.Printf("person[%d]: %s\n", i, person[i])}fmt.Println("")//使用空白符for _, name := range person {fmt.Println("name :", name)}}
运行结果:
跳出当前循环,可⽤于 for、switch、select。
//demo_21.gopackage mainimport "fmt"func main() {for i := 1; i <= 10; i++ {if i == 6 {break}fmt.Println("i =", i)}}
运行结果:
跳过本次循环,只能用于 for。
//demo_22.gopackage mainimport "fmt"func main() {for i := 1; i <= 10; i++ {if i == 6 {continue}fmt.Println("i =", i)}}
运行结果:
改变函数内代码执行顺序,不能跨函数使用。
//demo_23.gopackage mainimport "fmt"func main() {fmt.Println("begin")for i := 1; i <= 10; i++ {if i == 6 {goto END}fmt.Println("i =", i)}END :fmt.Println("end")}
运行结果:
//demo_24.gopackage mainimport "fmt"func main() {i := 1fmt.Printf("当 i = %d 时:\n", i)switch i {case 1:fmt.Println("输出 i =", 1)case 2:fmt.Println("输出 i =", 2)case 3:fmt.Println("输出 i =", 3)fallthroughcase 4,5,6:fmt.Println("输出 i =", "4 or 5 or 6")default:fmt.Println("输出 i =", "xxx")}}
运行结果:
当 i = 1 时:输出 i = 1
当 i = 2 时:输出 i = 2
当 i = 3 时:
输出 i = 3
输出 i = 4 or 5 or 6
当 i = 4 时:输出 i = 4 or 5 or 6
当 i = 7 时:输出 i = xxx
结论: