Kotlin - 반복문(for,while,repeat)

이동수·2024년 9월 3일

Kotlin

목록 보기
12/33
post-thumbnail

시작하기 전

결론적으로 for, while 잘 쓰지 않음

step, until 뭐 이런것들 대충만 알고있으면 됨

collection에 있는것을 훨씬 많이씀

조건형 반복문

  • while(조건에 맞으면 계속 돌아라)
  • do while(조건없이 구문실행후 조건을 체크함, 조건없이 반드시 한번은 사용할때 사용)

범위형 반복문

  • for (step 붙여서 변하는 값 범위 정할 수 있음, downTo는 감소할때 쓸수있음)
    ('a'..'e'같은 문자열도 가능)
  • i in 1..10 (1~10)
  • i in 1 until 10 (10은 미포함)

for

for(var i = 1 ; i <= 100; i++) 코틀린은 명령형 언어처럼 이런식으로 쓰면 error

—> for(item in 1..100)

  • step - 붙여서 변하는 값 범위 정할 수 있음
    ('a'..'e'같은 문자열도 가능)
  • downTo - 범위가 감소할때
  • in - i in 1..10 (1~10)
  • until- i in 1 until 10 (10은 미포함)
  1. for문은 iterator(반복자)을 제공하는 모든 것을 반복할 수 있음
  • iterator은 collection(list,set,map)에 저장되어 있는 것을 일관성있게 꺼내 오는 방법임.
var collection = listOf(1,2,3,4,5)
collection.iterator()

for (item in collection)
	print(item)
  1. for문의 Body가 블록이 올수도 있음
for (item in collection) {
	print(item.id)
	print(item.name)
}
  1. 배열이나 리스트를 반복할때, index를 이용하고 싶다면 indices를 이용하면 됨
val array = arrayOf("가","나","다")
for(i in array.indices) {
	print("$i : ${array[i]}"
  1. index를 이용하고 싶을때, withIndex()를 이용할 수있음
  • index와 value를 같이 사용하고 싶을때
val array = arrayOf("가","나","다")
for((index,value) in array.withIndex)) {
	print("$index: $value")
}
  1. hasNext()
val array = listOf("가","나","다")
val iterator = array.iterator()
while(iterator.hasNext()){
	print(iterator.next())
}
  1. 그냥 해본거 - forEach()사용 (전혀 다른 느낌)
val numbers = listOf("one", "two", "three", "four")
numbers.forEach {
    println(it)
}

for(odd in startValue downTo 1 step 2) 이런식으로 안써

함수형 프로그래밍이니까 밑에처럼 사용함

(startValue..endValue).filter{ it % 2 == 0 }.map{ n -> sum += n } 이런식으로 사용해


While

  • while, do-while은 java와 거의 같음
` var i = 1
    
    while(i <= 10){
        println(i)
        ++i
    }
    println(i)
  • 무한반복 (컴퓨터 프로그램 백신검사, 채팅 프로그램의 채팅 메신저 수신, 디지털시계 등)
    • while(true){} 무한반복 → break같이 끊어주는게 있어야함
while(true){
    //commands
}

do while

  • do-while문에서 body의 지역변수를 do-while문의 조건문이 참조 할 수 있음
  • 조건없이 구문실행후 조건을 체크함, 조건없이 반드시 한번은 사용할때 사용
  • 사용자로부터 어떤 입력을 받을 때, 입력으로 특정한 문자열이 들어왔을때 종료하는 경우
var str:String?
    do{
        print("input: ")
        str = readLine()
        println("view : $str")
    }while(str != "exit")
    println("exit")

repeat

repeat(5) { } - {}안을 5번 반복해라

0개의 댓글