개발일기

Go - 조건문 if / switch 본문

프로그래밍 언어/Go

Go - 조건문 if / switch

Flashback 2022. 3. 11. 11:52
728x90
반응형

1. If

Go에서 if 조건문을 사용할 때는 조건을 나타내는 구문에 괄호를 사용하지 않는다.

import "fmt"

func main() {
    water := 10 // var water int = 10
    
    if water > 10 {
	fmt.Println("10보다 큽니다")
    } else if water < 10 {
    	fmt.Println("10보다 작습니다")
    } else {
    	fmt.Println("10입니다")
    }
}

다른 언어들과 동일하게 조건을 구분할 때, if - else if - else 를 사용하여 조건에 따라 실행되는 부분이 달라지게 된다.

 

 

2. Switch / Case

import "fmt"

func main() {
	var fruit string = "포도" // juice := "주스"
    
    switch fruit {
    	case "사과":
        	fmt.Println("사과입니다")
        case "오렌지":
        	fmt.Println("오렌지입니다")
        case "포도":
        	fmt.Println("포도입니다")
        default:
        	fmt.Println("?!")
    }
}

if문을 대신하여 switch / case 를 사용하여 조건에 따라 실행되는 부분이 달라지게 할 수 있다.

switch 문 뒤에 변수 또는 표현식으로 넣어 case 부분에서 해당 변수가 가질 수 있는 값들을 지정한 후, case 부분에서 분기처리를 할 수 있다.

 

3. Switch / Case - fallthrough

Go의 Switch / Case 에서는 기본적으로 매 Case마다 break문이 생략된다. Go 컴파일러가 자동으로 매 Case부분에 break를 넣어주기때문에 굳이 break를 쓸 필요가 없게 된 것이다.

하지만 case 조건을 연속으로 사용하여야 할 경우에는 fallthrough 넣어주면 된다.

 

func main() {
	
    var num int = 10 // num := 10
    
	switch num {
    	case num > 9 :
        	fmt.Println("9보다 큽니다")
            fallthrough
        case num > 8 :
        	fmt.Println("8보다 큽니다")
            fallthrough
        ...
        
        default:
        	fmtPrintln("?!")
    }
}

숫자를 비교하는 switch 문인데 fallthrough를 통해 Case조건이 만족한 후에도 그 뒤에 나오는 Case 부분이 실행된다.

 

 

4. Switch / Case - 조건변수 / 표현식의 생략

또한, Go의 Switch문에서는 switch 뒤에 나오는 변수 또는 표현식을 생략할 수 있다.

func main() {
	
    var num int = 10 // num := 10
    
	switch {
    	case num > 9 :
        	fmt.Println("9보다 큽니다")
            fallthrough
        case num > 8 :
        	fmt.Println("8보다 큽니다")
            fallthrough
        ...
        
        default:
        	fmtPrintln("?!")
    }
}

switch 뒷 부분에 바로 중괄호가 나오고 다음 줄에 case문이 나오도록 할 수 있다.

728x90
반응형

'프로그래밍 언어 > Go' 카테고리의 다른 글

Go - 배열 사용법  (0) 2022.03.15
Go - 함수의 사용법 및 응용  (0) 2022.03.15
Go - for, for-range 반복문  (0) 2022.03.14
Go - 변수 선언과 사용  (2) 2022.02.22
Go - Go 언어 설치하기 [윈도우, Mac, Linux]  (2) 2022.02.04
Comments