[Golang] for문

2021-10-13 hit count image

Golang에서 유일한 반복문인 for문을 사용하는 방법에 대해서 알아봅시다.

개요

이번 블로그 포스트에서는 Golang에서 for문을 사용하는 방법에 대해서 살펴보려고 합니다. 이 블로그 포스트에서 소개하는 코드는 다음 링크를 통해 확인하실 수 있습니다.

for문

Golang에서는 하나의 반복문만 존재하며, for문이 그 역할을 수행합니다. Golang에서는 while문과 같은 반복문이 존재하지 않지만, for문으로 그와 동일한 기능을 실행할 수 있습니다.

Golang에서는 다음과 같이 for문을 정의하여 사용할 수 있습니다.

for 초기화문; 조건문; 후처리 {
  // 조건문이 true이면 실행
  코드 블록
}

또한, 다음과 같이 초기화문을 생략할 수 있습니다.

for ; 조건문; 후처리 {
  ...
}

반대로, 다음과 같이 후처리를 생략하는 것도 가능합니다.

for 초기화문 ; 조건문;  {
  ...
}

물론, 초기화문과 후처리를 동시에 생략하는 것도 가능합니다.

for ; 조건문;  {
  ...
}

이를 다음과 같이 좀 더 간단하게 정의하여 사용할 수 있습니다.

for 조건문 {
  ...
}

이를 확인하기 위해 main.go 파일을 만들고, 다음과 같이 수정합니다.

package main

import "fmt"

func main() {
  for i := 0; i < 10; i++ {
    fmt.Println(i)
  }

  i := 0
  for ; i < 10; i++ {
    fmt.Println(i)
  }

  for i := 0; i < 10; {
    fmt.Println(i)
    i++
  }

  i = 0
  for i < 10 {
    fmt.Println(i)
    i++
  }

  i = 0
  for i < 10 {
    fmt.Println(i)
    i++
  }
}

continue와 break

Golang에서도 반복문안에서 continuebreak을 사용하여 반복문을 조절할 수 있습니다.

  • continue: 후처리로 이동
  • break: 반복문 종료

이를 확인하기 위해 main.go 파일을 다음과 같이 수정합니다.

package main

import "fmt"

func main() {
  for i := 0; i < 10; i++ {
    if i == 3 {
      continue
    }
    if i == 6 {
      break
    }
    fmt.Println(i)
  }
}

프로그램을 실행하면 다음과 같이 i3일 때 후처리로 이동하여, 화면에 i가 표시되지 않은 것을 알 수 있습니다. 또한, i6일 때, 반복문이 종료된 것을 알 수 있습니다.

# go run main.go
0
1
2
4
5

무한 루프

Golang에서는 for문을 사용하여 무한 루프를 구현할 수 있습니다. for문에서 다음과 같이 초기화문과 후처리를 생략하고, 조건에 true를 설정함으로써 무한 루프를 구현할 수 있습니다.

for true {
  코드 블록
}

이를 다음과 같이 간단하게 표현할 수 있습니다.

for {
  코드 블록
}

무한 루프를 확인하기 위해, 다음과 같이 main.go 파일을 수정합니다.

package main

import (
  "fmt"
  "time"
)

func main() {
  i := 1
  for {
    time.Sleep(time.Second)
    fmt.Println(i)
    i ++
  }
}

이를 실행하면, 1초에 한번씩 화면에 i를 출력하는 것을 확인할 수 있으며, 프로그램이 종료되지 않는 것을 확인할 수 있습니다.

# go run main.go
1
2
3
4
...

이렇게 프로그램이 종료되지 않고 계속 실행될 때에는, ctrl + c키를 눌러 프로그램을 종료할 수 있습니다.

완료

이것으로 Golang으로 유일한 반복문인 for문을 사용하는 방법에 대해서 알아보았습니다. 또한 for문의 초기화문과 후처리를 생략할 수 있음을 확인하였고, 무한 루프를 만드는 방법에 대해서도 살펴보았습니다.

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

앱 홍보

책 홍보

블로그를 운영하면서 좋은 기회가 생겨 책을 출판하게 되었습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.

스무디 한 잔 마시며 끝내는 React Native, 비제이퍼블릭
스무디 한 잔 마시며 끝내는 리액트 + TDD, 비제이퍼블릭
[심통]현장에서 바로 써먹는 리액트 with 타입스크립트 : 리액트와 스토리북으로 배우는 컴포넌트 주도 개발, 심통
Posts