개발일기

Go - for, for-range 반복문 본문

프로그래밍 언어/Go

Go - for, for-range 반복문

Flashback 2022. 3. 14. 17:06
728x90
반응형

 

Go에서의 반복문은 다른 언어의 반복문과 같은 구조를 가진다.

 

1. For

for 초기값; 조건식; 증감식  - 형식으로 사용된다.

if문과 Go언어의 특성상 초기값, 조건식, 증감식을 괄호로 감싸면 에러가 발생하게 된다. 또한 중괄호는 for문을 사용한 줄에서 열어줘야 에러가 발생하지 않는다.

for i := 0; i < 100; i++ {
	// ...
    // 반복될 때 마다 실행할 구문들
}

 

2. For - 초기값, 증감식 생략

또한 Go언어의 반복문에서는 초기값과 증감식을 생략하고 조건식만을 사용하여 for문을 사용할 수 있다.

var i int = 10

for i < 100 {
	// ...
    // 조건이 만족할 때 실행될 구문들
    // i++ 무한루프를 방지하기 위해 증감식을 따로 추가한다
}

만약 위와 같이 for문을 설정하면 for문은 끝나지 않고 계속 실행되게 된다. 조건이 계속 참이기 때문이다. 이러한 부적절한 무한루프를 방지하기 위해서 for문 내부에 조건의 증감식을 따로 추가해주면 무한루프를 방지할 수 있다.

 

3. For Range

for range에서는 배열과 같은 여러 개의 값을 가지고 있는 요소들을 for문에 대입하여 하나하나씩 실행시킨다. php의 foreach와 비슷한 방법으로 사용할 수 있다.

 

for 인덱스,요소값 range [배열] 과 같은 형식으로 사용한다.

import 'fmt'

fruits := []string{"오렌지", "메론", "포도", "자몽", "망고"}
// 배열을 사용

func main() {
	for i, v := range fruits {
    	// fruits 배열의 요소들을 차례차례로 대입하여 결과를 출력한다.
		fmt.Println("%d, %s\n", i, v)
	}
}

fmt.Println을 통해 출력할 때, i는 인덱스값, v에는 해당 요소의 값이 나오게 된다.

 fruits 배열은 인덱스 0부터 시작하여 오렌지, 메론, 포도 ... 등의 값이 순서대로 추가된다. for range문은 이러한 배열속성의 값을 인덱스 순서대로 대입하여 값을 출력시킨다.

 

 

4. break, continue

Go에서도 반복문을 사용할 때, break와 continue 키워드를 사용할 수 있다.

func main() {
	test := 1
    
    for test < 15 {
    	if test == 10 {
        	test += 1
        	continue
            // test의 값이 10일 경우 아래 부분은 실행하지 않은채
            // for 루프를 시작한다.
        }
        
        if test > 13 {
        	break
            // 아래 부분은 실행하지 않고 for문을 종료한다.
        }
        
        test += 1
        // 무한 루프를 방지하고자 증감식을 추가
    }

}

break를 사용하여 반복문을 종료시킬 수 있고, continue를 사용하여 아랫부분의 내용들은 실행시키지 않은채, 반복문의 시작부분으로 이동하여 반복문을 계속해서 실행되도록 한다.

728x90
반응형

'프로그래밍 언어 > Go' 카테고리의 다른 글

Go - 배열 사용법  (0) 2022.03.15
Go - 함수의 사용법 및 응용  (0) 2022.03.15
Go - 조건문 if / switch  (0) 2022.03.11
Go - 변수 선언과 사용  (2) 2022.02.22
Go - Go 언어 설치하기 [윈도우, Mac, Linux]  (2) 2022.02.04
Comments