[Kotlin]5. 반복문과 증감연산자
조건문에는 조건형 반복문 과 범위형 반복문이 있다.
조건형 반복문 : 조건이 참인 경우 반복을 유지
범위형 반복문 : 반복 범위를 정해 반복을 수행
조건형 반복문 : While
1
2
3
4
5
6
|
fun main(){
var a = 0
while(a < 5 ){
println(a++)
}
}
|
cs |
while (조건문) {
실행문
}
위와 같은 형태로 만들며 조건문 이 참일때까지 실행문 이 계속 실행되고, 거짓이되면 반복문을 종료한다.
여기서 출력 값은 0,1,2,3,4 이다.
a++ 은 후위 증가 연산자이며, 화면에 출력된 후에야 증가 값이 반영된다.
1
2
3
4
5
6
|
fun main(){
var a = 0
while(a < 5 ){
println(++a)
}
}
|
cs |
여기서 ++a 는 전위 증가 연산자이며, 해당구문내에서 증가 값을 즉시 반영한다.
따라서 출력값은 1,2,3,4,5 이다.
do...while문 : while에 의해 조건을 체크하여 반복한다는 점은 같지만,
최초 한번은 조건없이 do 에서 구문을 실행후, while로 조건을 체크한다.
1
2
3
4
5
6
7
|
fun main(){
var a = 0
do
{
println(a++)
} while(a>5)
}
|
cs |
do
{
실행문
}while(조건문)
여기서 조건인 a>5 는 거짓이지만 최초한번 은 실행되어 출력 값은 0 이 나온다.
따라서 조건과 상관없이 반드시 한번은 실행되야 한다면 do while 구문을 사용하면 된다.
범위형 반복문 : For
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
fun main(){
for (i in 1..10){
print(i) //12345678910
}
for (j in 1..10 step 3){
print(j) //14710
}
for (k in 9 downTo 0){
print(k) //9876543210
}
for (l in 'a'..'e'){
print(l) //abcde
}
}
|
cs |
for (범위){
실행문
}
* 기본적으로 for 문은 값을 1 씩 증가시키며 반복하게 된다.
* print는 println 과 달리 줄을 떼지않고 '붙여서' 출력할때 사용한다.
여기서 "i in 1..10" 은 1 부터 10까지 1씩 증가시키며 i 에 대입한다는 뜻이다.
i 에 1이 들어가면 아래쪽 print(i) 에 대입이되어 1 이출력되고, 다시 for(i in 1..10) 쪽으로 돌아가서 i 에 2를 대입하고
아래 코드인 print(i) 에서 2가 출력된다. 이런식으로 범위가 끝날때 까지 반복하게된다.
또한 1씩 증가하는 것이 아닌 특정 숫자만큼 증가를시키려면 "j in 1..10 step 3" 처럼 기존 형식 뒤에 step 을 붙여서 사용하면 된다.
"i in 1..10" 에서는 step 을 안붙이더라도 기본적으로 step 1 이 구문에서 생략 되어 있어서 1씩 증가를 하는 셈이다.
또한 1씩 감소를 시키려면 "k in 9 downTo 0" 처럼 사용하면 된다. 감소 역시 뒤에 step 을 붙일 수 있다.
for 문은 (l in 'a'..'e') 처럼 char 자료형 에도 사용할 수 있다.
증감연산자
증가 연산자 : ++a , a++ 과 같이 사용하며, 변수의 값을 1 증가시키는 역할을 함
감소 연산자 : --a, a-- 와 같이 사용하며, 변수의 값을 1 감소시킴