자바스크립트를 활성화 해주세요

Tucker의 Go 언어 프로그래밍 11장 요약

 ·  ☕ 2 min read

Tucker의 Go 언어 프로그래밍스터디 요약 노트입니다.

11장. for문

for문의 Go 언어에서의 특징만 확인해보자.

  1. Go에서 반복문은 for문만 제공된다.
  2. forwhile처럼 사용하기 위한 문법을 제공한다. (초기문이나 후처리 생략)

초기문, 후처리 생략

초기문과 후처리를 생략할 수 있다. 모두 생략하는 경우 사실상 while문과 다름이 없다.

1
2
3
for i := 1; i <= 9; i++ {
    fmt.Printf("%d * %d = %d\n", 2, i, 2 * i)
}
1
2
3
4
i := 1
for ; i <= 9; i++ {
    fmt.Printf("%d * %d = %d\n", 2, i, 2 * i)
}
1
2
3
4
for i := 1; i <= 9; {
    fmt.Printf("%d * %d = %d\n", 2, i, 2 * i)
    i++
}
1
2
3
4
5
i := 1
for i <= 9 {
    fmt.Printf("%d * %d = %d\n", 2, i, 2 * i)
    i++
}

초기문과 후처리를 모두 생략한 경우는 사실상 while문이나 다름이 없다.

레이블을 활용한 break

다중 for문에서 레이블을 선언하고, break 뒤에 레이블을 입력하면 해당 레이블에서 가장 가까운 for에서 break하는 효과가 있는데, 사실상 goto의 응용이라고 볼 수 있다.

대부분 프로그래밍 언어에서는 goto계열의 기능 사용을 자제하라고 권고하고 있다. 만약 goto를 사용할 수 밖에 없는 경우에는 뒤쪽 레이블로만 사용할 것을 권고하고 있다. 대부분 임베디드 계열 코드나, 커널 코드를 보면 성능 향상이나 코드 크기 문제로 인해 어쩔 수 없이 goto를 사용하기 때문이다.

그런데 여기서 사용하는 break의 활용 예시는 앞쪽 레이블을 인자로 사용하며, 해당 레이블에서 가까운 for문을 확인해야 하므로, 좋은 접근법은 아니다. 일반적으로 사용하지 말고, 어쩌다 코드 리딩 중에 발견할때 이해하는 수준으로 넘어가자.

저자 강의


JaeSang Yoo
글쓴이
JaeSang Yoo
The Programmer

목차