- 반복문의 종류
: 범위형 반복문_ 반복 범위를 정해 반복을 수행. for
: 조건형 반복문_ 조건이 참인 경우 반복을 유지. while, do..while
fun main(){
for(i in 0..9){
print(i)
}
}
<print>
0123456789
- for()
: 기본적으로 for문은 값을 1씩 증가시키며 반복하게 됨.
- for() 에서 기본적으로 사용하는 i ?
: 인덱스(index)의 약자.
: 인덱스는 1부터가 아닌 0부터 사용.
: 인덱스로 사용할 변수에는 var,val을 붙이지 않아도 됨.
- for() 에서 사용하는 옵션.
step : 증가값을 1이 아닌 다른 수로 하고 싶을 때 사용. | downTo : 값을 감소시키고 싶을 때 사용. |
fun main(){ for(i in 0..9 step 3){ print(i) } } |
fun main(){ for(i in 9 downTo 0){ print(i) } } |
<print> 0369 |
<print> 9876543210 |
: 감소 역시 step을 붙여 단계를 설정 가능.
: char 자료형에서도 사용 가능.
fun main(){
var a = 0
while (a < 5) ① ③
print(a++) ②
}
<print>
01234
- while() 실행되는 순서.
: ① while문의 조건이 참인지 확인. ② 참일 경우 while에 따르는 구문을 1회 수행(a++). ③ while문으로 돌아가 거짓이 될 경우 반복을 중단. 다음 구문이 있을 시, 다음 구문으로 넘어감.
fun main(){
var a = 0
do{
print(a++)
} while(a < 5)
}
<print>
01234
- while 과 do..while 의 차이.
: while에서 조건을 체크하여 반복한다는 점은 같지만, 최초 한 번은 조건없이 do 에서 구문을 실행한 후 while로 조건을
체크한다는 선후관계에 차이가 있음.
: 조건과 관계없이 반드시 '한 번은 실행'해야 한다면 do..while문 사용.
- 반복문에서 사용하는 코드의 흐름을 제어할 수 있는 키워드.
: break, continue
- break
: 반복문 내의 구문이 실행되는 중간에 즉시 반복문을 종료하고 다음 구문으로 넘어가는 역할.
- continue
: 다음 반복 조건으로 즉시 넘어가는 역할
fun main(){ for (i in 1..10){ if (i == 3) break print(i) } } |
fun main(){ for (i in 1..10){ if (i == 3) continue print(i) } } |
<print> 12 //3이 되는 즉시 반복문을 종료하여 3은 포함되지 않음. |
<print> 12456789 //3이 되는 시점에 print하지 않고 for문으로 돌아가 다음 반복 조건인 4로 진행. |
- break나 continue가 적용되는 다중 반복문.
: label을 통해 지정할 수 있는 기능이 있음.
<print> i : 1, j : 2 |
Q. i = 1, j = 2일 때, 모든 반복문이 종료되는 식 만들기. ① for (i in 1..10) 에서 break, for (j in 1..10) 에서 break. ② 코드가 복잡 -> 레이블 이름+@ 사용. ③ loop@외부반복문 .. break@loop. ④ 레이블 이름이 달린 반복문을 기준으로 즉시 break 실행. |
fun main(){ loop@for (i in 1..10){ for (j in 1..10){ if(i==1 &&j==2) break@loop print("i : $i, j : $j") } } } |
- ${}
: "" 안에서 변수를 출력할 때는 변수명 앞에 $ 표기를 붙여주면 변수 내용으로 대체되어 출력.
: {} 는 문자 오인 방지를 위해 사용.
'연습장 > 이론' 카테고리의 다른 글
클래스 4. 오버라이드, 추상화, 인터페이스 (1) | 2024.02.16 |
---|---|
클래스 3. 클래스 상속 (0) | 2024.02.15 |
Kotlin_ 2-1. 배열, 조건문 (0) | 2024.02.14 |
Kotlin 연산자 이론 (0) | 2024.02.07 |
미션 리스트_ 앱개발 용어정리 1, 2 (0) | 2024.01.31 |