既に似たような記事もありますが、備忘録ように記載しておきます。
for selectでbreakとしても抜け出せないので、下記のようにgotoを使用すると抜け出せます。
main.go
package main
import (
"fmt"
"time"
)
func main() {
i := 0
ticker := time.NewTicker(1 * time.Second)
defer ticker.Stop()
for {
select {
case <-ticker.C:
fmt.Printf("COUNT : %d\n", i)
if i == 5 {
goto GOTO_FINISH
}
i++
}
}
GOTO_FINISH:
fmt.Println("GOTO_FINISH")
}