34 lines
361 B
Go
34 lines
361 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
func main() {
|
|
data := make(chan int)
|
|
go func() {
|
|
for i := 1; i <= 4; i++ {
|
|
data <- i
|
|
}
|
|
close(data)
|
|
}()
|
|
|
|
for {
|
|
value := 0
|
|
opened := true
|
|
|
|
select {
|
|
case value, opened = <-data:
|
|
if value == 2 {
|
|
continue
|
|
} else if value == 3 {
|
|
break
|
|
}
|
|
|
|
if !opened {
|
|
return
|
|
}
|
|
}
|
|
|
|
fmt.Println(value)
|
|
}
|
|
}
|