본문 바로가기

# 02/코틀린

[Kotlin] 반복문

반응형

for문


for 문의 선언


for (요소 변수 in 컬렉션 혹은 범위) { 반복할 본문 }


for ( x in 1.. 5) {                                                // 코틀린의 in과 범위 지정을 활용한 루프

println( x )                                                 // 본문

}


for ( x in 1.. 5) println( x )                                   // 한 줄에 표시하는 경우



예제)

fun main() {

var sum = 0

for (x in 1.. 10) sum += x


println("sum : $sum")

}





하행 반복 - downTo

5, 4, 3, 2, 1


for (i in 5 downTo 1) print(i)

for (i in 5.. 1) print(i)                                            // 잘못된 사용!! 아무것도 출력되지 않는다.


필요한 단계 증가 - step

1, 3, 5


for (i in 1.. 5 step 2) print(i)


혼합 사용

5, 3, 1


for (i in 5 downTo 1 step 2) print(i)





의사 코드(Pseudo-code)


n : 줄 수 입력

반복 (line : 1->n 만큼) {

반복 (space : 1->(n-line)만큼) { 공백 출력 }

반복 (star : 1->(2*line-1)만큼) { 별표 출력 }

개행

}




예제)

fun main() {


print("Enter the lines : ")

val n = readLine()!!.toInt()            // 콘솔로부터 입력받음


for (line in 1.. n) {

for (space in 1..(n - line)) print(" ")                 // 공백 출력

for (star in 1..(2 * line -1)) print("*")                // 별표 출력 for (star in 1 until 2 * line) 으로 표현가능!!

println()                                                   // 개행

}

}




예제)

fun main() {

var total : Int = 0


for (num in 1.. 100 step 2) total += num

println("Odd total : $total")


for (num in 0.. 99 step 2) total += num

println("Even total : $total")

}





while문


선언 사용


while(조건식) {                        // 조건식이 true인 동안 본문의 무한 반복

본문

. . .

}


var i = 1

while ( i <=5 ) {

println("$i")

++i                                // 계속 반복하다 보면 조건식이 5 이상으로 넘어갈 때 false가 되어 탈출

}


데몬 프로그램의 사용 예


while(true) {

temp = 온도 검사

if(temp > 한계 온도) { 경고 발생 }

. . .

}




예제)

fun main() {

print("Enter the number : ")

var number = readLine()!!.toInt()

var factorial : Long = 1


while(number > 0) {                    // n x ... x 4 x 3 x 2 x 1

factorial *= number

--number

}


println("Factorial : $factorial")

}




do~while문


선언 


do {

본문

} while (조건식)




예제)

fun main() {

do {

print("Enter an integer : ")

val input = readLine()!!.toInt()


for(i in 0..(input-1)) {

for(j in 0..(input-1)) print((i+j)% input +1)

println()

}

} while (input != 0)

}



모듈로 연산은 나머지값을 이용해 자신의 입력값에 해당하는 값이 들어오면 항상 0이되는 특징이 있다. 이것은 배열에 원래 인덱스로 돌아오기 위해 자주 이용된다.


Enter an integer : 5

12345

23451

34512

45123

51234

Enter an integer : 0 - 탈출


반응형

'# 02 > 코틀린' 카테고리의 다른 글

[Kotlin] 클래스와 객체의 정의  (0) 2019.08.06
[Kotlin] 흐름의 중단과 반환  (0) 2019.08.06
[Kotlin] MVP Model 구성  (0) 2019.07.15
[Kotlin] MVP 패턴 소개 2  (0) 2019.07.15
[Kotlin] MVC 패턴 소개 1  (0) 2019.07.15