개발/Go

[Go] 기초 - 조건문

devhooney 2022. 7. 15. 11:35
728x90

1. if

- 조건문은 다른 언어와 비슷하다.

- 괄호는 생략

- {는 꼭 조건과 같은 라인에 와야한다.

- else 문도 꼭 }와 같은 라인이어야 한다.

if k == 1 {  
    println("One")
} else if k == 2 {
	println("Two")
} else {
	println("!")
}

 

2. switch

- 복수개의 case 값들이 있을 경우는 case 3,4 처럼 콤마를 써서 나열할 수 있다.

- 다른 언어는 switch 키워드 뒤에 변수나 expression 반드시 두지만, Go는 이를 쓰지 않아도 된다. 이 경우 Go는 switch expression을 true로 생각하고 첫번째 case문으로 이동하여 검사한다.

- 다른 언어의 case문은 break를 쓰지 않는 한 다음 case로 이동하지만, Go는 다음 case로 가지 않는다.

- 다른 언어의 switch는 일반적으로 변수의 값을 기준으로 case로 분기하지만, Go는 그 변수의 Type에 따라 case로 분기할 수 있다.

var name string
var category = 1

switch category {
    case 1:
        name = "case1"
    case 2:
        name = "case2"
    case 3, 4:
        name = "case3, 4"
    default:
        name = "default"
}
println(name)

// switch 뒤에 expression이 없을 수 있음
func grade(score int) {
    switch {
    case score >= 90:
        println("A")
    case score >= 80:
        println("B")
    case score >= 70:
        println("C")
    case score >= 60:
        println("D")
    default:
        println("No Hope")
    }
}

// Type switch
switch v.(type) {
case int:
    println("int")
case bool:
    println("bool")
case string:
    println("string")
default:
    println("unknown")
}

 

- fallthrough 문을 사용하면 모든 case를(3, default) 거친다.

func check(val int) { // val = 2
    switch val {
    case 1:
        fmt.Println("1 이하")
        fallthrough
    case 2:
        fmt.Println("2 이하")
        fallthrough
    case 3:
        fmt.Println("3 이하")
        fallthrough
    default:
        fmt.Println("default 도달")
    }
}

 

- 자바 switch

switch(입력변수) {
    case 입력값1: ...
         break;
    case 입력값2: ...
         break;
    ...
    default: ...
         break;
}

 

회사에서 사용할 때는 java의 switch문 처럼 사용했던 것 같다.

go를 접하고 다른 언어에서도 if문 쓰는 방식처럼 사용하고 있다.(왠지 깔끔해보여서)

 

참고사이트

http://golang.site/go/article/7-Go-%EC%A1%B0%EA%B1%B4%EB%AC%B8

 

예제로 배우는 Go 프로그래밍 - Go 조건문

1. if 문 if 문은 해당 조건이 맞으면 { } 블럭안의 내용을 실행한다. Go의 if 조건문은 아래 예제에서 보듯이 조건식을 괄호( )로 둘러 싸지 않아도 된다. 그리고 반드시 조건 블럭 시작 브레이스({)

golang.site

 

728x90

'개발 > Go' 카테고리의 다른 글

[Go] 기초 - 함수  (0) 2022.07.17
[Go] 기초 - 반복문  (0) 2022.07.17
[Go] 기초 - 연산자  (0) 2022.07.13
[Go] 기초 - 데이터 타입  (0) 2022.07.13
[Go] 기초 - 변수와 상수  (0) 2022.07.12