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 |