10. Go语言—for循环

一、for循环

for 初始化语句;条件判断;变量修改

for i := 0; i < 100; i++{
    fmt.Printf('i=%d\n',i)
}
// C 的 while 一样
for i > 0{
    fmt.Println("i>0")
}
// 死循环

for true{
    fmt.Println("i>0")
}
或
for{
    fmt.Printf("i>0")
}

二、for range

// 用来遍历数组、slice、map、chan
package main

import (
	"fmt"
)

func main() {
	str := "hello world"
	for i, v := range str{
		fmt.Printf("index[%d] val[%c] len[%d]\n", i, v, len([]byte(str)))

	}
}

package main

import (
	"time"
	"fmt"
)

func test() {
	time.Sleep(time.Millisecond*100)
}

func main() {
	str := "hello中国world"
	for i, v := range str{
		if i == 2{
			continue
		}else if i >5{
			break
		}
		fmt.Printf("index[%d] val[%c] len[%d]\n", i, v, len([]byte(string(v))))

	}
}

结果:中文3字节
index[0] val[h] len[1]
index[1] val[e] len[1]
index[3] val[l] len[1]
index[4] val[o] len[1]
index[5] val[中] len[3]

三、goto和label

func main(){
    // label作为一个标记
LABEL_1:
    for i := 0; i<=2; i++{
        for j := 0; j <=2; j++{
            if j == 1{
                // 当j为1时,跳转至外层循环
                continue LABEL_1
            }

            fmt.Printf("i is:%d, and j is: %d\n", i, j)
        }

    }
}

结果:
i is:0, and j is: 0
i is:1, and j is: 0
i is:2, and j is: 0
// 只能在同一函数中使用goto
func main(){
    i := 0
HEAD:
    print(i)
    i++
    if i == 5{
        return
    }
    goto HEAD
}
posted @ 2019-06-23 18:53  qi.hu  阅读(608)  评论(0编辑  收藏  举报