Golang 의 If 분기문

GolangBeginner
지금 연습하기

소개

할 일 계획을 만들 때, 작업이 아직 완료되지 않았다면 할 일 목록에 추가되고, 완료되었다면 완료된 항목으로 이동됩니다.

프로그래밍 세계에서도, 우리는 다양한 요구 사항에 따라 프로그램의 방향을 변경해야 합니다. 다음으로, 흐름 제어 문인 if 분기문에 대해 알아보겠습니다.

지식 포인트:

  • if
  • if-else
  • else-if
  • 서식 규칙
이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 91%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

if 문

가장 일반적으로 사용되는 분기문은 if 문입니다. 이 문은 미리 설정된 조건이 참인지 확인한 다음 코드 블록을 실행할지 여부를 결정합니다. 형식은 다음과 같습니다.

if condition {
    code block
}

조건이 참이면 프로그램은 코드 블록을 실행하고, 그렇지 않으면 코드 블록을 건너뜁니다.

실제 예제를 살펴보겠습니다. if.go라는 새 파일을 만들고 다음 코드를 작성합니다.

cd ~/project
touch if.go
package main

import (
    "fmt"
)

func main() {
    var num = 40
    // Get the remainder of dividing two numbers using %
    if num % 2 == 0 {
        fmt.Println(num, "is even")
    }
}

프로그램을 실행합니다.

go run if.go

결과는 다음과 같습니다.

40 is even

이 프로그램에서 먼저 정수 변수 num을 선언합니다. 그런 다음 if 문에서 나머지 연산자 %를 사용하여 num을 2 로 나눈 나머지를 구하고, 동등 연산자 ==를 사용하여 나머지가 0 과 같은지 확인합니다. 만약 그렇다면, 코드 블록이 실행되어 숫자가 짝수임을 출력합니다.

if else 문

if 문의 조건이 충족되지 않을 때 다른 내용을 출력하려면 어떻게 해야 할까요? 이 경우 if else 문을 사용할 수 있습니다. if 문의 조건이 참이면 if 문 내의 코드 블록을 실행하고, 그렇지 않으면 else 문 내의 코드 블록을 실행합니다.

if else 문의 형식은 if 문과 유사합니다.

if condition {
    code
} else {
    code
}

예제를 살펴보겠습니다. 다음 프로그램은 오늘이 평일인지 주말인지 출력합니다.

cd ~/project
touch if_else.go
package main

import (
    "fmt"
    "time"
)

func main() {
    // Get the current time
    t := time.Now()

    // Check whether it is Saturday or Sunday
    if t.Weekday() == time.Saturday || t.Weekday() == time.Sunday {
        fmt.Println("Today is:", t.Weekday(), "weekend")
    } else {
        fmt.Println("Today is:", t.Weekday(), "weekday")
    }
}

프로그램을 실행합니다.

go run if_else.go

결과는 다음과 같습니다.

Today is: Monday weekday

표준 라이브러리의 time 패키지를 사용하여 현재 시간을 가져옵니다. 그런 다음 토요일 및 일요일과 비교하여 주말이면 if 문 내의 코드 블록이 실행되고, 그렇지 않으면 else 문 내의 코드 블록이 실행됩니다.

else if 문

단일 조건 외에도 else if 문을 사용하여 여러 조건을 확인할 수 있습니다.

형식은 다음과 같습니다.

if condition {
    code
} else if condition {
    code
} else {
    code
}

분기문에서는 여러 개의 else if 문을 가질 수 있지만, if 문과 else 문은 각각 하나씩만 가질 수 있습니다. else if 문은 if 문과 else 문 사이에 위치해야 합니다.

"if else" 섹션의 프로그램을 다시 작성하여 요일을 출력해 보겠습니다.

if_else.go 파일을 업데이트합니다.

package main

import (
    "fmt"
    "time"
)

func main() {
    today := time.Now().Weekday()

    if today == time.Monday {
        fmt.Println("Today is Monday")
    } else if today == time.Tuesday {
        fmt.Println("Today is Tuesday")
    } else if today == time.Wednesday {
        fmt.Println("Today is Wednesday")
    } else if today == time.Thursday {
        fmt.Println("Today is Thursday")
    } else if today == time.Friday {
        fmt.Println("Today is Friday")
    } else if today == time.Saturday {
        fmt.Println("Today is Saturday")
    } else {
        fmt.Println("Today is Sunday")
    }
}

프로그램을 실행합니다.

go run if_else.go

실행 후 결과는 다음과 같습니다.

Today is Monday

이전 프로그램에서는 먼저 time.Now()를 사용하여 현재 시간을 가져온 다음, 현재 시간에서 요일을 가져왔습니다. 이 프로그램에서는 이 두 줄의 코드가 한 줄로 결합되었습니다. 요일을 얻은 후, 분기문과 일치시켜 요일을 출력합니다.

if 문 내 초기화 구문

이전 학습에서 if 문은 조건이라는 하나의 매개변수만 가졌습니다.

if condition {
    code
}

전체 매개변수에는 초기화 문 (initialization statement) 도 포함되어 있으며, 이는 Go 에서 선택적 매개변수입니다. 일반적으로 임시 변수의 선언 및 초기화에 사용되며, 초기화 문은 사용 시 세미콜론으로 구분됩니다. 구문은 다음과 같습니다.

if initialization statement; condition {
    code
}

"if else" 섹션의 프로그램을 다시 작성했습니다. 변수 선언을 if 문으로 이동하여 초기화 문으로 사용함으로써 코드를 단축했습니다.

package main

import (
    "fmt"
    "time"
)

func main() {
    if t := time.Now(); t.Weekday() == time.Saturday || t.Weekday() == time.Sunday {
        fmt.Println("Today is:", t.Weekday(), "weekend, studying and recharging")
    } else {
        fmt.Println("Today is:", t.Weekday(), "also studying hard")
    }
}

프로그램을 실행합니다.

go run if_else.go

정상적으로 실행되는 것을 확인할 수 있습니다.

Today is: Monday also studying hard

참고: 초기화 문에서 선언된 변수의 범위는 if 블록 내에서만 유효합니다.

형식 문제

Go gopher 여러분은 if 문을 배우면서 Go 의 형식 요구 사항을 눈치챘는지 모르겠습니다.

  • Go 에서 키워드 if, else, else if는 오른쪽 중괄호 }와 같은 줄에 있어야 합니다.
  • else ifelse 키워드도 이전 왼쪽 중괄호와 같은 줄에 있어야 합니다. 그렇지 않으면 컴파일러가 컴파일 시 구문 오류를 보고합니다.

else 문을 다음 줄로 이동한 후 프로그램을 실행하면 컴파일러가 구문 오류를 보고합니다.

요약

이 랩에서는 if 분기 문에 대해 설명했으며, 다음 주요 내용을 포함합니다.

  • if 분기 코드 블록에는 여러 개의 else if 문이 있을 수 있지만, if 문과 else 문은 각각 하나씩만 있을 수 있습니다.
  • else if 문은 if 문과 else 문 사이에 위치해야 합니다.
  • if 문에서 초기화 문 (initialization statement) 을 사용하여 코드를 단축할 수 있습니다.
  • 컴파일러는 키워드 if, else, else if가 중괄호와 같은 줄에 있어야 함을 강제합니다.