누룽지맛치킨
어미새의 개발일지
누룽지맛치킨
전체 방문자
오늘
어제
  • 분류 전체보기 (86)
    • 코틀린 (8)
    • 안드로이드 (5)
      • 디자인 (2)
      • 개발 (2)
      • 도구 (1)
    • 피그마 (1)
    • 대외활동 (0)
    • 프로젝트 (0)
    • 백준 (55)
      • JAVA (55)
    • 알고리즘 (3)
    • 클라우드 (5)
    • 스터디 (2)
      • 코테 (2)
    • 자료구조 (5)
    • 컴퓨터 기술 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 클라우드 컴퓨팅
  • 코틀린
  • 백준 자바 다이나믹 프로그래밍
  • 클라우드
  • 안드로이드 디자인
  • 알고리즘 조합
  • 백준 자바 수열
  • 백준 자바
  • 백준 자바 정렬
  • 안드로이드
  • 백준 자바 2292번
  • 백준 자바 누적합
  • Room Migration
  • 자료구조
  • Room version 올리기
  • 코틀린 인 액션
  • 백준 자바 벌집
  • 자바 Priority Queue
  • 백준 자바 2559번
  • 코틀린 runBlocking

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
누룽지맛치킨
코틀린

Iteration

코틀린

Iteration

2023. 1. 26. 15:00

while 루프

  • while
  • do-while
  • 자바와 다르지 않음
while(조건){
    /*...*/
}

do{
    /*...*/
}while(조건)

for 루프

  1. 범위와 수열
    •  범위
      • 폐구간의 범위를 지정 가능b. 수열
      • fun main() { val a = 1..10 println(a is IntRange) }
      • 범위에 속한 값을 일정한 순서로 이터레이션하는 경우
  • 예시
fun fizzBuzz(i: Int) = when{
    i % 15 == 0 -> "FizzBuzz"
    i % 5 == 0 -> "Buzz"
    i % 3 == 0 -> "Fizz"
    else -> "$i"
}

fun main(){
    for(i in 1..100){
        println(fizzBuzz(i))
    }
}
  • 역방향 수열을 원한다면 정수 downTo 정수 사용
  • 증가하는 수를 변경 하고 싶다면 step 키워드 사용
  • 범위를 폐구간이 아닌 임의의 수 전까지 이터레이션을 원할 경우 .. 대신 until 사용

맵에 대한 이터레이션

fun main(){
    val binaryReps = mutableMapOf<Char, String>()
    for(c in 'A' .. 'F'){
        val binary = Integer.toBinaryString(c.toInt())
        binaryReps.put(c, binary)
    }

    for((letter, binary) in binaryReps){
        println("${letter} = ${binary}")
    }
}
  • ..연산자를 숫자 타입의 값뿐 아니라 문자 타입의 값에도 적용 가능
  • 이터레이션하는 컬렉션의 원소를 풀어서 letter와 binary라는 두 변수에 저장
    • letter : key 값
    • binary : value 값
fun main(){
    val list = arrayListOf("10","11","1001")
    for ((index, element) in list.withIndex()){
        println("${index}: ${element}")
    }
}
  • 컬렉션에 인덱스를 함께 사용 가능

in을 사용한 원소 검사

  • in 연산자를 사용해 어떤 값이 범위에 속하는지 검사 가능
  • !in을 사용하면 어떤 값이 범위에 속하지 않는지 검사 가능
fun isLetter(c: Char) = c in 'a'..'z' || c in 'A'..'Z'
fun isNotDigit(c: Char) = c !in '0'..'9'

fun main(){
    println(isLetter('q'))
    println(isNotDigit('x'))
}
  • when 식에서도 사용 가능!
fun recognize(c: Char) = 
    when (c){
        in '0'..'9' -> "It is a Digit"
        in 'a'..'z', in 'A'..'Z' -> "It is a letter"
        else -> "I don't know..."
    }

fun main(){
   println(recognize('8'))
}
  • 범위는 비교가 가능한 클래스라면 그 클래스의 인스턴스 객체를 사용해 범위를 만들 수 있음

문자열 비교

fun main(){
    println("kotlin" in "java".."scala") // true
    println("kotlin" in setOf("java", "scala")) // false
}
  • 위의 출력문은 문자열이 해당 범위 사이에 위치하는지 검사(사전을 생각하면 된다.)
  • 아래 출력문은 문자열이 해당 집합에 속하는지 검사

 

참조

KOTLIN IN ACTION

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

[코루틴] runBlocking  (0) 2023.07.05
예외 처리  (0) 2023.01.26
선택 표현과 처리  (0) 2023.01.25
클래스와 프로퍼티  (0) 2023.01.25
함수와 변수  (0) 2023.01.25
  • while 루프
  • for 루프
  • 맵에 대한 이터레이션
  • in을 사용한 원소 검사
  • 문자열 비교
'코틀린' 카테고리의 다른 글
  • [코루틴] runBlocking
  • 예외 처리
  • 선택 표현과 처리
  • 클래스와 프로퍼티
누룽지맛치킨
누룽지맛치킨

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.