Go 언어 for 사용법

고(Golang)에서 for 구문을 사용하는 3가지 방법.

golang

4/11/2024

고 언어(Golang)에 while은 없습니다. 대신 forwhile처럼 사용할 수 있습니다.


for 혼자 쓰기

이 구문은 for true와 같습니다. 반드시 break를 걸어야 합니다. break를 넣지 않으면 무한루프로 폭주합니다.


	count := 3
	for {
		fmt.Println(count)
		count--
		if (count < 1) {
			break
		}
	}
	fmt.Println("Start!")

3
2
1
Start!

for 조건문

break를 써 줄 필요는 없지만 변수 값을 바꾸는 코드는 반드시 포함해야 합니다. 변수 값을 바꾸지 않으면 역시 무한루프로 폭주합니다.


	count := 3
	for count > 0 {
		fmt.Println(count)
		count--
	}
	fmt.Println("Start!")

3
2
1
Start!

range 순회하기(iteration)

슬라이스(slice)를 순회할 수 있습니다.


	count := []string{"3초", "2초", "1초"}

	for i, s := range count {
		fmt.Println(i, s)
	}
	fmt.Println("Start!")

0 3초
1 2초
2 1초
Start!

여기서 count는 스트링 3개로 구성된 슬라이스이며, range를 이용해 슬라이스 요소를 순회할 수 있습니다. 다른 프로그래밍 언어와는 달리 in 같은 키워드를 쓰지 않고 일반적인 변수 할당처럼 :=를 이용해 각 요소 값을 할당합니다. 주의할 점은 그냥 =이 아니라 최초 할당 때 쓰는 :=를 쓴다는 점입니다. 왜 변수를 재활용하지 않고 :=를 쓰느냐 하는 점은 논란의 여지가 있는데, 그냥 for에서 인덱스와 요소 할당은 새로운 변수처럼 할당한다고 생각하는 편이 좋습니다. 첫 번째 값 i는 인덱스, s는 요소 값입니다.


range 인덱스가 필요없을 때

인덱스가 필요없을 때는 변수 이름 대신 언더스코어 _를 사용하면 인덱스가 할당되지 않습니다.

for _, s := range count {
	fmt.Println(s)
}

range 인덱스만 필요할 때

인덱스만 필요하고 요소 값이 필요없다면 첫 번째 값만 할당받으면 됩니다. for i := range count

for i := range count {
	fmt.Println(i)
}