go中continue和break的区别
在for循环中
continue用于跳过继续的操作,直接从下一个循环开始
break用于直接跳出for循环
//当i==3时,不输出;当i==5时,跳出循环;会依次打印0,1,2,4
for i:=0;;i++ {
if i%3==0{
continue
}
if i%5==0{
break
}
fmt.Println(i)
}
在select中只有break用法;break跳出当前case
在for select中
continue从下一个循环开始,不执行其余任何操作
break不可跳出循环,只跳出当前case,然后执行select块下面的代码
break可以使用loop标签跳出for循环
t1 := time.NewTicker(time.Second * 4)
t2 := time.NewTicker(time.Second * 5)
t3 := time.NewTicker(time.Second * 6)
t4 := time.NewTicker(time.Second * 7)
out:
for {
fmt.Println("start")
select {
case <-t1.C: //输出start,1,end
fmt.Println("1")
case <-t2.C: //输出start,2;跳出当前for循环,执行下一个循环,不打印end
fmt.Println("2")
continue
fmt.Println("22")
case <-t3.C: //输出start,3,end;跳出当前select,打印end
fmt.Println("3")
break
fmt.Println("33")
case <-t4.C: //输出start,4;跳出for循环
fmt.Println("4")
break out
fmt.Println("44")
}
fmt.Println("end")
}