안녕하세요. 언제나 휴일입니다.
이번에는 Go언어의 반복문을 알아볼게요. Go언어에서 제공하는 반복문은 for 문이예요. while 문이나 do while 문을 제공하지 않습니다.
for 초기식; 조건식;조건 변화식{
반복 수행할 구문
}
프로젝트를 생성하여 1부터 100까지 정수의 합계를 계산하는 코드를 표현해 보아요.
// Example 반복문(1부터 100까지 정수 합계 구하기) package main import "fmt" func main() { var sum = 0 for i := 1; i <= 100; i++ { sum += i } fmt.Println("1부터 100까지 정수 합계:", sum) }
실행 결과
1부터 100까지 정수 합계: 5050
for문에서 초기 구문을 지정할 때 i:=1처럼 표현하여 for문 내에서만 사용 가능하게 할 수 있어요.
for i := 1; i <= 100; i++ {
for문도 if문처럼 엄격한 폼을 요구합니다. for문의 중괄호를 생략할 수도 없고 중괄호의 위치를 변경할 수도 없습니다.
for문에 조건식만 표현하여 C언어의 while 문처럼 표현할 수 있습니다.
for 조건식{
반복 수행할 구문
}
// Example 반복문 - 조건식만 표현 package main import "fmt" func main() { var sum = 0 var i int i = 1 for i <= 100 { sum += i i++ } fmt.Println("1부터 100까지 정수 합계:", sum) }
그리고 for 키워드 뒤에 아무 표현없이 바로 중괄호가 오면 무한 루프입니다. 이 때는 break 문을 이용하여 반복문을 탈출할 수 있어요.
다음은 1부터 순차적으로 정수의 합계를 구하다 처음으로 100을 넘어서면 반복문을 탈출하여 결과를 출력하는 예제 코드입니다.
// Example 반복문 - 무한 루프 package main import "fmt" func main() { var sum = 0 var i int i = 1 for { sum += i if sum > 100 { break } i++ } fmt.Println("1에서 ", i, " 까지 더하면 처음으로 100이 넘어요.") fmt.Println("합계:", sum) }
그리고 Go 언어에서는 중첩 반복문에서 break 키워드 뒤에 레이블을 지정하여 원하는 반복문을 탈출할 수 있습니다.
다음은 이중 반복문 내부에서 정수를 입력받아 0에서 100 사이의 정수이면 입력한 정수를 합계에 더하고 100을 넘어서면 내부 반복문을 탈출하고 음수일 때는 전체 반복문을 탈출하는 예제 코드입니다.
// Example 중첩 반복문을 break 레이블로 탈출하기 package main import "fmt" func main() { var sum = 0 var num int Loop1: for i := 0; i < 10; i++ { Loop2: for j := 0; j < 10; j++ { fmt.Print("정수 입력:") fmt.Scanln(&num) if num < 0 { break Loop1 } else { if num > 100 { break Loop2 } } sum += num fmt.Println("j:", j) } fmt.Println("i:", i) } fmt.Println("합계:", sum) }
실행 결과
정수 입력:3 j: 0 정수 입력:4 j: 1 정수 입력:102 i: 0 정수 입력:2 j: 0 정수 입력:101 i: 1 정수 입력:2 j: 0 정수 입력:3 j: 1 정수 입력:-1 합계: 14