출처 : 깡샘의 코틀린프로그래밍

 

 

반복문


for 반복문

 

fun main(args: Array<String>) {
    var sum: Int=0
    for(i in 1..10) {
    	sum += i
    }
    println(sum)
}


val list = listOf("Hello", "World", "!")
val sb=StringBuffer()
for(str in list) {
	sb.append(str)
}

 

  • 인덱스 값을 획득하고자 한다면 indices를 사용
val list = listOf("Hello", "World", "!")
for (i in list.indices) {
	println(list[i])
}

 

  • withindex()를 이용하여 index 와 value를 획득할 수 있다.
val list = listOf("Hello", "World", "!")
for ((index, value) in list.withIndex()) {
	println("the element at $index is $value")
}

 

for문의 조건

  • for(i in 1..100){//...} // 100까지 포함
  • for (i in 1 until 100) { //... } // 100은 포함되지 않음 
  • for (x in 2..10 step 2) { //... } //2씩 증가
  • for (x in 10 downTo 1) { //... }//숫자 감소
for(i in 1 until 11 step 2){
	println(i)
}

 

 

while 반복문

fun main(args: Array<String>) {
    var x=0
    var sum1=0
    
    while (x < 10) {
    	sum1 += ++x
    }
    
    println(sum1)
}

 

  • break와 continue문, 그리고 라벨
fun main(args: Array<String>) {
    var x2=0
    var sum2=0
    
    while(true){
        sum2 += ++x2
        if(x2==10) break
    }
    
    println(sum2)
}


for (i in 1..3) {
    for (j in 1..3) {
        if (j>1) break
        println("i : $i , j : $j")
    }
}


aaa@ for (i in 1..3) {
    for (j in 1..3) {
        if (j>1) break@aaa
        println("i : $i , j : $j")
    }
}

 

 

 

 

연산자


대입연산자

연산자 상용법 설명
= A=B B값을 A에 대입

 

산술연산자

연산자 사용법 설명
+ A+B 2개의 값을 더함
- A-B A에서 B를 빼기
* A*B A와 B를 곱함
/ A/B A에서 B를 나눔
% A%B A를 B로 나눈 나머지

 

전개연산자

연산자 사용법 설명
* *A A배열의 데이터를 나열

 

fun main(args: Array<String>) {
    val array1= arrayOf(10, 20, 30)
    
    val list1= asList(1, 2, array1[0], array1[1], array1[2], 100, 200)
    list1.forEach({println(it)})
}


val array1= arrayOf(10, 20, 30)

val list2=asList(1, 2, *array1, 100, 200)
list2.forEach({println(it)})

 

  • 개발자가 직접 정의한 함수를 이용할때도 사용
fun some(vararg a: String){
    val iterator=a.iterator()
    while(iterator.hasNext()){
    	println(iterator.next())
    }
}


fun main(args: Array<String>) {
    val array3= arrayOf<String>("hello","world")
    some(*array3)
}

 

  • 전개 연산자는 배열에 적용
val list3= listOf<String>("a","b")
some(*list3.toTypedArray())

 

복합 대입 연산자

연산자 사용법 설명
+= A+=B A와 B의 값을 더한 값을 A에 할당
-= A-=B A에서 B를 뺀 값을 A에 할당
*= A*=B A와 B를 곱한 값을 A에 할당
/= A/=B A에서 B를 나눈 값을 A에 할당
%= A%=B A를 B로 나눈 나머지 값을 A에 할당

 

증감 연산자

연산자 사용법 설명
++ A++, ++A A값에 1을 더해 결과 값을 A에 할당
-- A--, --A A값에서 1을 빼 결과 값을 A에 할당
fun main(args: Array<String>) {
    var data=10
    var result1 = data++
    println("result=$result1, data=$data")
}


var data3=10
var result3 = ++data3
println("result3=$result3, data3=$data3")

 

 

논리 연산자

연산자 사용법 설명
&& A&&B A와 B가 모두 true라면 결과값이 true,
|| A||B A와 B가 하나라도 true이면 결과값은 true
! !A A가 true이면 결과값은 false, false이면 결과값은 true

 

범위 연산자

연산자 사용법 설명
.. A..B A부터 B까지의 수를 묶어 범위 표현

 

 

Null 안전 관련 연산자

연산자 사용법 설명
? val a: Int? a 변수를 nullable로 선언
?: A ?: B A가 null이면 B 실행
?. A?.length A가 null이면 결과 값이 null, null이 아니면 length
!! A !! B A가 null 이 아닌경우만 B 실행. null이면 Exception 발생

 

 

연산자 재정의


  • 연산자 재정의는 함수의 재정의를 통해 작성
fun main(args: Array<String>) {
    val a: Int = 10
    val b: Int = 5
    val result1: Int = a + b
    val result2: Int = a.plus(b)
    println("result1 : $result1 ... result2 : $result2")
}
data class MyClass(val no: Int){
    operator fun plus(arg: Int): Int {
    	return no - arg
    }
}


operator fun MyClass.minus(arg: Int): Int{
	return no + arg
}


class Test(val no: Int) {
    operator fun plus(arg: Int): Int {
    	return no - arg
    }
}


fun main(args: Array<String>) {
    val obj: MyClass = MyClass(10)
    val result1 = obj + 5
    val result2 = obj - 5
    
    println("result1 : $result1 .. result2 : $result2") //result1 : 5 .. Result2 : 15
    
    println("${Test(30) + 5}") //25
}

 

'Backend > Kotlin' 카테고리의 다른 글

[Kotlin] 흐름 제어 구문과 연산자(1/2)  (0) 2022.09.05
[Kotlin] 데이터 타입  (0) 2022.09.05
[Kotlin] 변수와 함수  (0) 2022.09.01
[Kotlin] 코틀린 이해  (0) 2022.08.31

+ Recent posts