🔥 For 문에서 생략 가능한 문

166자
3분

Go 언어에서 for 루프를 작성할 때는 초기문(init statement), 조건문(condition), 후처리문(post statement)을 사용하여 작성할 수 있어요. 하지만 이 중에서 초기문과 후처리문은 생략할 수 있답니다.

go
package main
 
import "fmt"
 
func main() {
    sum := 1    // 초기문: sum 변수를 1로 초기화합니다.
    for ; sum < 1000; {    // 조건문: sum이 1000보다 작을 때까지 반복합니다.
        sum += sum    // sum에 sum을 더하여 sum을 갱신합니다.
    }
    fmt.Println(sum)    // 최종 sum 값을 출력합니다.
}
 
go
package main
 
import "fmt"
 
func main() {
    sum := 1    // 초기문: sum 변수를 1로 초기화합니다.
    for ; sum < 1000; {    // 조건문: sum이 1000보다 작을 때까지 반복합니다.
        sum += sum    // sum에 sum을 더하여 sum을 갱신합니다.
    }
    fmt.Println(sum)    // 최종 sum 값을 출력합니다.
}
 

위의 코드에서는 초기문과 후처리문이 생략되었네요. 초기문은 sum := 1로 작성되어 for 루프 밖에 위치하고 있고, 후처리문은 아예 작성되지 않았어요.

하지만 이렇게 작성해도 문제없이 잘 동작한답니다. for 루프는 sum이 1000보다 작을 때까지 계속해서 sum에 sum을 더하여 sum을 갱신하게 되죠. 이렇게 되면 sum은 1, 2, 4, 8, 16, ..., 1024 순으로 커지게 됩니다.

최종적으로 sum이 1000 이상이 되면 for 루프를 빠져나오게 되고, fmt.Println(sum)을 통해 최종 sum 값인 1024가 출력되는 거예요.

이처럼 Go 언어에서는 초기문과 후처리문을 생략할 수 있어 코드를 더욱 간결하게 작성할 수 있답니다. 하지만 코드의 가독성을 위해서는 상황에 맞게 초기문과 후처리문을 사용하는 것이 좋겠죠?

YouTube 영상

채널 보기
Const 펑터 - 아무것도 안 하는 펑터가 필요한 이유 | 프로그래머를 위한 카테고리 이론
NestJS 전역 에러 처리 | NestJS 가이드
펑터란? | 프로그래머를 위한 카테고리 이론
NestJS 커스텀 예외 만들기 - 에러 처리 깔끔하게 하는 법 | NestJS 가이드
바이펑터란? | 프로그래머를 위한 카테고리 이론
NestJS 표준 예외 처리와 HttpException | NestJS 가이드
NestJS 필터 바인딩 - Method, Controller, Global Scope 비교 | NestJS 가이드
펑터 타입 클래스 | 프로그래머를 위한 카테고리 이론