내용 보기

작성자

관리자 (IP : 172.17.0.1)

날짜

2020-07-09 05:51

제목

[Kotlin] 코틀린 기초 03 - for 반복문


  • for 반복문

다른 언어들과 약간 차이가 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 숫자 증감 반복
var sum: Int = 0;
for(I in 1..10) {
    sum += I;
}
 
// 컬렉션 타입 반복
var list: List<String> = listOf("Hello""“World""!");
val sb = StringBuffer();
for( str in list) {
    sb.append(str);
}
 
// 컬렉션 타입의 인덱스 값 추출
var list: List<String> = listOf("Hello""World""!");
for(i in list.indices) {
    println(list[i]);
}
 
// 컬렉션 타입의 인덱스와 값 모두 추출
var list: List<String> = listOf("Hello""World""!");
for( (index, value) in list.withIndex() ) {
    println("the element at $index is $value");
}
 
// until, step키워드 이용
// 1부터 11미만까지 2씩 증가하는 반복
for( i in 1 until 11 step 2) {
    println(i); <- 13579
}
cs
  • 라벨(label)을 이용한 break키워드

다른 언어들과 마찬가지로 break는 break문이
작성된 곳을 감싸는 블록{ }을 벗어나기 위해 사용된다.
그런데 코틀린에서는 현재 반복문의 블록 외 바깥쪽 반복문도 break로 벗어나게 할 수 있다.


break@{라벨} 키워드를 이용한다.

1
2
3
4
5
6
7
8
aaa@for(i in 1..3) {
        for(j in 1..3) {
            // break@aaa 를 통해 상위 for문을 중단하고 빠져나온다. 현재 블록의 j변수 반복문은 그대로 반복된다.
            if(j > 1break@aaa;
 
            println("I: $i, j : $j"); <- I : 1, j : 1
        }
}
cs


출처1

출처2