Computer_Language/GO

[Go] 5. Go(golang)의 반복문

Joo-Topia 2019. 9. 23. 13:13

반복문과 조건문 만 제대로 익혀도 구구단 정도의 간단한 문제는 간단하게 풀 수 있게 된다.

오늘은 Go언어에서 반복문에는 어떤 특징이 있는지 잘 정리해 보자.

 

Go의 for


Go언어 반복문의 특징은 while문이 없다는 점이다.

while문의 기능을 for문으로 구현할 수 있기 때문에 반복문은 for문만 기억하면 된다.

while문을 자주 사용해서 불편할 것 같지만, 반복문을 사용하기 위해서 한 가지 문법만 기억하면 된다는 점은 마음에 들었다.

 

아래 코드는 for문의 가장 기본적인 예제를 만들어봤다.

package main

import "fmt"

func main() {
    var number int

    fmt.Print("정수 한 개를 입력해 주세요 : ")
    fmt.Scanf("%d", &number)

    for i := 0; i < number; i++ {
        fmt.Printf("%d번 반복하는 반복문 입니다.\n", number)
    }
}

결과

 

C문법이랑 많이 비슷하다. 변수 i를 따로 선언해주지 않아도 이 전 글에서 공부했던 'Sort Assignment Statement'를 사용하면 좀 더 간단하게 반복문을 구현할 수 있다.

Go언어의 for문에서는 C언어보다 다양한 기능을 제공한다.

 

조건식만 사용하는 for


package main

import "fmt"

func main() {
    num := 5
    for num > 0 {
        fmt.Print("5번 반복하는 for문 입니다.\n")
        num--
    }
}

결과

굳이 반복문을 위한 변수를 따로 사용하지 않아도, C언어의 while문처럼 사용할 수 있다.

익숙해진다면 정말 편리할 것 같다.

 

 

무한루프 동작을 하는 for


package main

import "fmt"

func main() {
    for {
        fmt.Print("무한루프입니다. ctrl + c로 종료시켜 주세요\n")
    }
}

결과

C언어의 "while 1"을 대신하는 구문이다.

간단해서 따로 설명할 내용이 없다.

 

for range문


파이썬의 "for ~ in array:"구문은 프로그래밍을 할 때 정말 편리하게 사용하는 구문이다.

배열의 내용을 순차적으로 꺼내서 반복문 안에서 사용할 수 있기 때문이다.

 

Go언어도 이러한 기능을 제공한다.

package main

import "fmt"

func main() {
    var names [3]string = [3]string{"주성민", "주성민 여자친구", "주성민 친구"}

    for idx, name := range names {
        fmt.Printf("변수 %d번째 name의 값은 %s 입니다.\n", idx+1, name)
    }
}

결과

 


오늘은 Go언어의 반복문 "for문"에 대해 정리해봤다.

C와 Python의 for문을 합쳐놓은 강한 for문 같다는 느낌이 들었다.

이제 조건문과 분기문을 공부해보러 가보자.

 

*구름 edu의 바로 실행해보면서 배우는 Go Lang"을 수강 후 정리한 내용입니다.
소스코드는 깃허브 저장소를 참고!