목차
for 반복문 정의
for 반복문은 지정 횟수 만큼 반복 실행.
Go에는 for 반복문만 지원. (while 문 존재 X)
[구문]
for statement1 ; statement2 ; statement3 {
// 반복 실행 코드
}
PS1.
statement1 : 초기값
statement2 : 반복 조건. (true이면 계속 반복, false이면 반복 종료)
statement3 : 값 증감
PS2.
statement1~statement3 은 반복문 독립변수로 꼭 필요한 건 아니나,
어떤 형태로든 비슷한 역할을 하는 코드는 존재해야 함.
PS3.
for 키워드는 반드시 소문자로 적어야 함.
[예제1] - 0 ~ 2 반복
package main
import ("fmt")
func main() {
for i:=0; i < 3; i++ {
fmt.Println(i)
}
}
결과값:
0
1
2
[예제2] - 10 ~ 30까지 10단위로 반복
package main
import ("fmt")
func main() {
for i:=10; i <= 30; i+=10 {
fmt.Println(i)
}
}
결과값:
10
20
30
continue 키워드
지정 조건일 때만 반복 중단 후, 다음 조건으로 건너뛰어 반복 계속.
[예제]
package main
import ("fmt")
func main() {
for i:=0; i < 3; i++ {
if i == 0 {
continue
}
fmt.Println(i)
}
}
결과값:
1
2
break 키워드
지정 조건일 때 반복을 완전 중단.
[예제]
package main
import ("fmt")
func main() {
for i:=0; i < 3; i++ {
if i == 2 {
break
}
fmt.Println(i)
}
}
결과값:
0
1
PS. continue / break 키워드는 보통 조건문과 함께 사용.
중첩 for 반복문
for 반복문 안에 또 for 반복문이 존재하는 경우에 해당.
(예) 구구단 - 2~9단, 각 단별로 1~9 반복
[예제] - 각 코딩언어별로 (초급/중급/고급) 표시
package main
import ("fmt")
func main() {
var langs = [2]string{"HTML", "CSS"}
var levels = [3]string{"초급", "중급", "고급"}
for i:=0; i < len(langs); i++ {
for j:=0; j < len(levels); j++ {
fmt.Println(langs[i],levels[j])
}
}
}
결과값:
HTML 초급
HTML 중급
HTML 고급
CSS 초급
CSS 중급
CSS 고급
range 키워드
array(배열), slice(슬라이스), map(맵) 반복 실행 시 유용.
index(색인번호)와 value(값) 둘 다 반환.
[구문]
for index , value := range array |slice |map {
// 각 요소에 대해 실행할 코드
}
PS. index 또는 value 생략하려면, 언더코어( _ ) 특수문자 사용.
[예제1] - 배열의 index(색인번호)와 value(값) 둘 다 출력
package main
import ("fmt")
func main() {
langs := [3]string{"HTML", "CSS", "JS"}
for idx, val := range langs {
fmt.Printf ("%v\t%v\n", idx, val)
}
}
결과값:
0 HTML
1 CSS
2 JS
[예제2] - 배열의 value(값)만 출력
package main
import ("fmt")
func main() {
langs := [3]string{"HTML", "CSS", "JS"}
for _ , val := range langs {
fmt.Printf("%v\n", val)
}
}
결과값:
HTML
CSS
JS
[예제3] - 배열의 index(색인번호)만 출력
package main
import ("fmt")
func main() {
langs := [3]string{"HTML", "CSS", "JS"}
for idx, _ := range langs {
fmt.Printf("%v\n", idx)
}
}
결과값:
0
1
2
주소 복사
랜덤 이동
최신댓글