방명록
- [GO] GO 기초 문법 - 조건문2024년 01월 22일 22시 32분 01초에 업로드 된 글입니다.작성자: 코딩백구반응형
다른 언어에서와 마찬가지로 기본적으로 if / else if / else 와 switch~case 문이 존재한다.
if 문
- Go 에서의 if 문은 파이썬처럼 소괄호가 없이 사용한다.
package main import ( "fmt" ) func main() { if true { fmt.Println("Hello, Go!") } else if true { fmt.Println("Who are you?") } else { fmt.Println("Goodbye") } }
- 위 코드처럼 일반적으로 사용할 수도 있으며, 아래 코드처럼 조건절에서 변수를 바로 선언할 수도 있다.
- 이때, 조건문에서 response, err 변수를 우측 함수로부터 받고, 바로 조건을 검사한다.
package main import ( "fmt" "net/http" ) func main() { if response, err := http.Get("http://localhost:4000"); err == nil { fmt.Println(response.StatusCode) // 200 } }
- Http Get 요청을 하고, 에러없이 정상적으로 받았다면 Http 상태코드를 출력하는 예제이다.
- 세미콜론을 구분자로 하여 err 변수에 대한 비교연산을 하여 조건을 검사한다.
switch-case 문
- 조건문과 마찬가지로 조건에 따라 행동한다.
- Go 언어의 switch-case 는 기본적인 사용법은 같지만 다른 부분이 다소 있다.
1. break 문이 필요 없다.
package main import ( "fmt" "net/http" ) func main() { response, _ := http.Get("http://localhost:4000") // http.Get 은 return 값이 두개이다. switch response.StatusCode { case 200: fmt.Println("Successful") case 404: fmt.Println("Not Found") default: fmt.Println("Nothing") } } // Successful 만 실행
2. 새로운 키워드인 fallthrough 를 사용한다.
- fallthrough 를 써야 다음으로 넘어갈 수 있으며, 그렇지 않으면 해당 케이스에 부합하는것만 실행하고 멈춘다.
3. 조건을 사용하지 않고 switch-case 문을 사용할 수 있다.
package main import ( "fmt" "time" ) func main() { t := time.Now() switch { case t.Hour() < 12: fmt.Print("Good Morning") case t.Hour() < 17: fmt.Println("Good Afternoon") default: fmt.Println("Good evening") } } // 정상적으로 실행
4. if 문 처럼 조건절에서 변수 선언이 가능하다.
package main import ( "fmt" "net/http" ) func main() { switch response, _ := http.Get("http://localhost:4000"); response.StatusCode { case 200: fmt.Println("Successful") case 404: fmt.Println("Not Found") default: fmt.Println("Nothing") } } // Successful 만 실행
반응형'Language > Go' 카테고리의 다른 글
[GO] Go 기초 문법 - 변수 선언 및 자료형 (1) 2023.12.30 [GO] Go 란 무엇일까? (0) 2023.12.28 다음글이 없습니다.이전글이 없습니다.댓글