5. switch 문 사용하기
페이지 정보
작성자 관리자 댓글 0건 조회 3,158회 작성일 19-03-11 08:36본문
다양한조건을 if, else if 문으로 나영하는 것보다 switch 문을 사용하면 간단하게 조건을 표현할 수 있다.
package main
import "fmt"
func main() {
i := 3
switch i { // 값을 판단할 변수 설정
case 0: // 각 조건에 일치하는
fmt.Println(0) // 코드를 실행합니다.
case 1:
fmt.Println(1)
case 2:
fmt.Println(2)
case 3: // 3과 변수의 값이 일치하므로
fmt.Println(3) // 이 부분을 실행하고 이후 실행을 중단
case 4:
fmt.Println(4)
default: // 모든 case에 해당하지 않을 때 실행
fmt.Println(-1)
}
}
package main
import "fmt"
func main() {
s := "world"
switch s { // 값을 판단할 변수 설정
case "hello": // 각 조건에 일치하는
fmt.Println("hello") // 코드를 실행합니다.
case "world": // 문자열 "world"와 변수의 값이 일치하므로
fmt.Println("world") // 이 부분을 실행하고 이후 실행을 중단
default:
fmt.Println("일치하는 문자열이 없습니다.")
}
}
package main
import "fmt"
func main() {
s := "Hello"
i := 2
switch i { // 값을 판단할 변수 설정
case 1:
fmt.Println(1)
case 2: // i가 2이고
if s == "Hello" { // s가 "Hello"이면
fmt.Println("Hello 2") // Hello 2를 출력하고
break // switch 분기문 실행을 중단
}
fmt.Println(2)
}
}
package main
import "fmt"
func main() {
i := 3
switch i { // 값을 판단할 변수 설정
case 4: // 각 조건에 일치하는
fmt.Println("4 이상") // 코드를 실행합니다.
fallthrough
case 3: // 3과 변수의 값이 일치하므로
fmt.Println("3 이상") // 이 부분을 실행
fallthrough // fallthrough를 사용했으므로 아래 case를 모두 실행
case 2:
fmt.Println("2 이상") // 실행
fallthrough
case 1:
fmt.Println("1 이상") // 실행
fallthrough
case 0:
fmt.Println("0 이상") // 실행, 마지막 case에는 fallthrough를 사용할 수 없음
}
}
여러 조건을 같은 문장으로 처리하고 싶을 때 case에서 ,(콤마)로 값을 구분해 준다.
package main
import "fmt"
func main() {
i := 3
switch i {
case 2, 4, 6: // i가 2, 4, 6일 때
fmt.Println("짝수")
case 1, 3, 5: // i가 1, 3, 5일 때
fmt.Println("홀수")
}
}
switch 문에서 함수를 실행학 결과값으로 분기를 할 수 있다. 이때 함수를 호출하고 뒤에 ;(세미콜론)을 분여준다.
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano()) // 현재 시간으로 Seed 값 설정
switch i := rand.Intn(10); { // rand.Intn 함수를 실행한 뒤 i에 대입
case i >= 3 && i < 6: // i가 3보다 크거나 같으면서 6보다 작을 때
fmt.Println("3 이상, 6 미만") // 코드 실행
case i == 9: // i가 9일 때
fmt.Println("9") // 코드 실행
default: // 모든 case에 해당하지 않을 때
fmt.Println(i) // 코드 실행
}
}
댓글목록
등록된 댓글이 없습니다.