PHpullh
학습 라이브러리/Go/조건문 & 반복문 — if, for, switch

GO · 기초 문법

조건문 & 반복문 — if, for, switch

Go에는 while이 없습니다. for가 모든 반복문 역할을 합니다.

기초 문법입문ifforswitchrangebreak

핵심 설명

Go에는 while이 없습니다. for가 모든 반복문 역할을 합니다.

Go code

package main

import "fmt"

func main() {
	// if — 초기화 구문 포함 가능
	if x := 42; x > 40 {
		fmt.Println("x는 40보다 큼:", x)
	}

	// for — 기본 (C의 for)
	for i := 0; i < 5; i++ {
		fmt.Print(i, " ")
	}
	fmt.Println()

	// for — while처럼
	n := 1
	for n < 100 {
		n *= 2
	}
	fmt.Println("n:", n)

	// for — 무한루프
	count := 0
	for {
		count++
		if count >= 3 {
			break
		}
	}

	// for range — 슬라이스/맵/채널
	fruits := []string{"🍎", "🍌", "🍇"}
	for i, v := range fruits {
		fmt.Printf("%d: %s
", i, v)
	}
	// 인덱스만
	for i := range fruits { _ = i }
	// 값만
	for _, v := range fruits { _ = v }

	// switch — fallthrough 없음 (기본)
	score := 85
	switch {
	case score >= 90:
		fmt.Println("A")
	case score >= 80:
		fmt.Println("B")
	default:
		fmt.Println("C 이하")
	}

	// switch — 타입 스위치
	var i interface{} = "hello"
	switch v := i.(type) {
	case int:    fmt.Println("int:", v)
	case string: fmt.Println("string:", v)
	default:     fmt.Println("unknown")
	}
}

학습 팁

switch에서 fallthrough 키워드를 명시하면 다음 case로 이어집니다. 기본적으로 break가 자동 적용됩니다.

주의할 점

for range에서 값 변수는 복사본입니다. 원본을 수정하려면 인덱스로 접근하세요: slice[i] = newVal

자주 묻는 질문

조건문 & 반복문 — if, for, switch란 무엇인가요?

Go에는 while 이 없습니다. for 가 모든 반복문 역할을 합니다.

조건문 & 반복문 — if, for, switch 학습 시 주의할 점은 무엇인가요?

for range 에서 값 변수는 복사본 입니다. 원본을 수정하려면 인덱스로 접근하세요: slice[i] = newVal