[Tucker의 Go 언어 프로그래밍] 09장 if문

Coen·2023년 10월 3일
1

tucker-go

목록 보기
6/18
post-thumbnail

이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 09장 써머리입니다.

09장 if문

9.1 if문 기본 사용법

if 조건문 {
	// logic
} else if {
	// logic
} else {
	// logic
}

9.2 그리고 &&, 또는 ||

  • 논리 연산자를 통한 조건문
func agePrinter(age int) {
	if age <= 19 && age >= 16 {
    	fmt.Println("고딩")
    } else if age > 19 || age < 16 {
    	fmt.Println("고등학생이 아님")
    } else {
    	//
    }
}

9.2.1 쇼트서킷

  • &&연산은 좌변이 false이면 우변을 검사하지 않고 false처리
  • ||연산은 좌변이 true이면 우변을 검사하지 않고 true처리
  • 위의 경우 뜻하지 않게 다른 결과를 뱉어낼 수 있다.
package main

import "fmt"

var cnt int = 0

func IncreaseAndReturn int {
	fmt.Println("run", cnt)
    cnt++
    return cnt
}

func main() {
	if false && IncreaseAndReturn() < 5 { // 실행되지 않는다.
    	fmt.Println("1증가")
    }
    if true || IncreaseAndReturn() < 5 { // 실행되지 않는다.
    	fmt.Println("1증가")
    }
    fmt.Println("cnt: ", cnt) // cnt: 0
}

9.2.2 소괄호 활용

  • 소괄호를 활용하여 다양한 조건문을 쉽게 만들 수 있다.

9.3 중첩 if

  • 가능하면 분리하는게 좋다.

9.4 if 초기문; 조건문

  • if 조건을 검사하기 전에 초기문을 넣을 수 있다.
  • 초기문은 검사에 사용할 변수를 초기화할 때 주로 사용한다.
if 초기문; 조건문 {
	// logic
}

make(map[string] string)
if value, ok := m["test"]; !ok {
	fmt.Println("없는 key")
}
fmt.Println(value) // value는 여기서 사용 불가능하다
profile
백엔드 프로그래머

0개의 댓글