1 반복문 개요
Go 언어에서는 반복문을 사용하여 코드 블록을 여러 번 실행할 수 있습니다. 특정 작업을 반복적으로 수행해야 할 때는 반복문이 매우 유용합니다. 예를 들어 배열의 각 요소를 반복적으로 반복하거나 특정 조건이 충족될 때까지 작업을 반복할 수도 있습니다. Go 언어에서는 주로 for
키워드를 사용하여 반복문을 구현하며, 이는 Go 언어에서 유일한 반복문입니다. 효율적이고 유지보수 가능한 코드를 작성하는 데 반복문을 올바르게 사용하는 것이 중요합니다.
2 for
반복문의 기본
2.1 for
반복문의 구조
Go 언어에서 for
반복문은 세 부분으로 구성됩니다:
- 초기화문: 첫 번째 반복 전에 실행되며, 일반적으로 반복 횟수를 선언하는 데 사용됩니다.
-
조건 표현식: 각 반복 전에 평가됩니다. 조건이
true
인 경우에만 반복 본문이 실행됩니다. - 후속문: 각 반복의 코드 블록 실행 후에 실행되며, 일반적으로 반복 횟수를 업데이트하는 데 사용됩니다.
for
반복문의 구문은 다음과 같습니다:
for 초기화문; 조건 표현식; 후속문 {
// 반복 본문 코드
}
2.2 for
반복문의 간단한 예제
간단한 예제를 통해 for
반복문의 실행 과정을 이해해 봅시다:
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println("i의 값은:", i)
}
}
이 예제에서 변수 i
는 0
으로 초기화됩니다. for
반복문은 조건 i < 5
가 참인지 확인합니다. 조건이 참이면 반복 본문이 실행되고 i
의 값이 출력됩니다. 반복 본문 실행 후에 i
의 값이 i++
(증가 연산)에 의해 업데이트되고, 그런 다음 i
의 값이 5
에 도달할 때까지 조건을 다시 확인하고, 조건이 거짓이 되면 for
반복문이 종료됩니다.
2.3 기타 for
반복문 예제
Go 언어의 for
반복문은 매우 유연하며 다양한 형태로 작성하여 다양한 시나리오를 처리할 수 있습니다.
2.3.1 무한 반복
Go에서는 for
반복문의 초기화문, 조건 표현식, 후속문을 생략하여 무한 반복문을 만들 수 있으며, 이는 break
문이나 함수에서의 반환 값을 통해 종료될 때까지 실행됩니다.
for {
// 무한 반복문 내의 코드
if someCondition {
break // 특정 조건이 충족되면 반복문을 종료합니다
}
}
2.3.2 조건만 있는 반복문
Go에서는 다른 프로그래밍 언어의 while
반복문과 유사하게 조건만 포함하는 for
반복문을 사용할 수도 있습니다.
n := 0
for n < 5 {
fmt.Println(n)
n++
}
위의 코드는 0
에서 4
까지를 출력하고, n
이 5
가 되면 반복문이 종료됩니다.
2.3.3 배열이나 슬라이스를 반복
Go에서는 range
키워드를 사용하여 배열이나 슬라이스의 각 요소를 반복하는 것을 간소화할 수 있습니다.
items := []int{1, 2, 3, 4, 5}
for index, value := range items {
fmt.Printf("인덱스: %d, 값: %d\n", index, value)
}
위의 코드는 각 요소의 인덱스와 값이 출력됩니다. 요소의 값만 필요한 경우 _
를 사용하여 인덱스를 무시할 수 있습니다.
for _, value := range items {
fmt.Printf("값: %d\n", value)
}
참고: 배열의 사용법은 후속 장에서 자세히 설명될 것입니다. 이 부분을 이해하지 못해도 괜찮습니다.
for
반복문을 이렇게 사용할 수 있다는 정도만 이해하면 됩니다.
2.3.4 맵을 순회하기
맵을 순회할 때는 for
루프와 range
표현식의 결합이 매우 강력합니다. 이를 사용하면 맵의 각 키-값 쌍을 얻을 수 있습니다.
colors := map[string]string{"red": "#ff000", "green": "#00ff00", "blue": "#000ff"}
for key, value := range colors {
fmt.Printf("키: %s, 값: %s\n", key, value)
}
이 예시에서는 colors
맵의 모든 키와 해당 값들을 출력합니다. 슬라이스를 순회하는 것과 유사하게, 필요한 것이 키인지 값인지에 따라 다른 것을 무시할 수 있습니다.
참고: 맵의 사용 방법은 후속 장에서 자세히 설명됩니다. 이 부분을 이해하지 못했다면 괜찮습니다. 단순히
for
루프를 이런 식으로 사용할 수 있다는 것만 이해하면 됩니다.
3 반복문의 흐름 제어
3.1 break
를 사용하여 반복문 종료하기
특정 조건이 충족되었을 때 반복문을 조기에 종료해야 하는 경우가 있습니다. 그런 경우 break
문을 사용할 수 있습니다. 아래는 break
를 사용하여 반복문을 종료하는 예시입니다:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
break // i가 5와 같을 때 반복문을 종료합니다.
}
fmt.Println("i의 값은:", i)
}
// 결과에는 0부터 4까지의 값만 포함됩니다.
}
3.2 continue
를 사용하여 반복 건너뛰기
특정 상황에서 현재 반복을 건너뛰고 다음 반복으로 진행하고 싶을 때 continue
문을 사용할 수 있습니다. 다음은 그 예시입니다:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i%2 != 0 {
continue // i가 홀수일 때 이 반복을 건너뜁니다.
}
fmt.Println("짝수:", i)
}
}