go 언어의 for 문은 다음의 예제와 비슷하다. 



for 문의 표현식은 기존처럼 조건문과 종료 조건을 사용할 수 있다. 



func main() {

  for i := 1; i < 10; i++ {

    println(i)

  }

}




결과는 다음과 같다. 


1

2

3

4

5

6

7

8

9




for 문의 표현식에 종료 조건을 사용할 수 있다.



package main

import "fmt"


func main() {

  i := 1

  for i < 10 {

    fmt.Println(i)

    i++

  }

}




결과는 다음과 같다.

1
2
3
4
5
6
7
8
9





또한 계산 expression은 사용할 수 없다. 다음 for문은 syntax error: i++ used as value 에러가 발생한다. 




func main() {

  i := 1

  for i < 10 {

    fmt.Println(i++)

  }

}




func main() {

  i := 1

  for i++ < 10 {

    fmt.Println(i)

  }

}







무한 루프가 되려면 for 조건을 사용하지 않는다.


func main() {


  for { }


}




range를 지원한다.


func main() {

  numbers := []int {10, 9, 8}

  for i, number := range numbers {

      println(i, number)

  }

}



이전 예제의 []int는 int 타입을 갖는 엘리먼트의 슬라이스(slice)이다. 




그러나 다음은 동작하지 않는다. 


  for i := range [1..10] {

      println(i)

  }



for문 안에 continue, break, goto를 사용할 수 있다. 



go 언어에서는 while은 지원하지 않는다. 





Posted by '김용환'
,