๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Study/Android

[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 2. ๊ธฐ๋ณธ ๋ฌธ๋ฒ•(1) - ๋ณ€์ˆ˜/์กฐ๊ฑด๋ฌธ/๋ฐฐ์—ด/๋ฐ˜๋ณต๋ฌธ

Kotlin ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

- ์ฝ”ํ‹€๋ฆฐ์€ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด


๋ณ€์ˆ˜

1. ๋ณ€์ˆ˜ ํƒ€์ž… ์„ ์–ธ ์‹œ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘

ex) Int, String

 

2. ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹

1) ์•”์‹œ์  ์„ ์–ธ: ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ , ๋Œ€์ž…๋˜๋Š” ๊ฐ’์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์ด ์ง€์ •

(๋‹จ, ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ๋ฐ˜๋“œ์‹œ ๋ช…์‹œํ•ด์•ผ ํ•จ)

fun main(){
    var var1 : Int = 10
    var var2 : Float = 10.1f
    var var3 : Double = 10.2
    var var4 : Char = '์•ˆ'
    var var5 : String = "์•ˆ๋“œ๋กœ์ด๋“œ"
}

// ์•”์‹œ์  ์„ ์–ธ์œผ๋กœ ์ž‘์„ฑ ์‹œ
fun main(){
    var var1 = 10
    var var2 = 10.1f
    var var3 = 10.2
    var var4 = '์•ˆ'
    var var5 = "์•ˆ๋“œ๋กœ์ด๋“œ"
}

2) var(variable)

- ์ผ๋ฐ˜ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉ

- ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๊ณ„์† ๋‹ค๋ฅธ ๊ฐ’์„ ๋Œ€์ž… ๊ฐ€๋Šฅ

 

3) val(value) 

- ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ๋™์‹œ์— ๊ฐ’์„ ๋Œ€์ž…ํ•˜๊ฑฐ๋‚˜, ์ดˆ๊ธฐํ™” ์—†์ด ์„ ์–ธํ•œ ํ›„ ํ•œ ๋ฒˆ๋งŒ ๊ฐ’์„ ๋Œ€์ž… ๊ฐ€๋Šฅ

- ํ•œ ๋ฒˆ ๊ฐ’์„ ๋Œ€์ž…ํ•˜๊ณ  ๋‚˜๋ฉด ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ

(→ like ์ƒ์ˆ˜)

var myVar : Int = 100
myVar = 200    // ์ •์ƒ

val myVa1 : Int = 100
myVal = 200    // ์˜ค๋ฅ˜

 

3. ๋ฐ์ดํ„ฐ ํ˜•์‹ ๋ณ€ํ™˜

- ์บ์ŠคํŒ… ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

- Kotlin์—์„œ ์ œ๊ณตํ•˜๋Š” toInt()๋‚˜ toDouble() ๋“ฑ์˜ ์ •์  ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ

var a : Int = "100".toInt()
var b : Double = "100.123".toDouble()

 

4. null ์‚ฌ์šฉ

- Kotlin์€ ๊ธฐ๋ณธ์ ์œผ๋กœ null ๊ฐ’์„ ๋„ฃ์ง€ ๋ชปํ•จ

→ ๋ณ€์ˆ˜ ์„ ์–ธํ•  ๋•Œ ๋ฐ์ดํ„ฐ ํ˜•์‹ ๋’ค์— ?๋ฅผ ๋ถ™์—ฌ์•ผ null ๋Œ€์ž… ๊ฐ€๋Šฅ

var notNull : Int = null    // ์˜ค๋ฅ˜
var koNull : Int? = null    // ์ •์ƒ

 

- ๋ณ€์ˆ˜๊ฐ€ null ๊ฐ’์ด ์•„๋‹ˆ๋ผ๊ณ  ํ‘œ์‹œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

→ !!๋กœ ๋‚˜ํƒ€๋ƒ„

var ary = ArrayList<Int>(1)    // 1๊ฐœ์งœ๋ฆฌ ๋ฐฐ์—ด ๋ฆฌ์ŠคํŠธ
ary!!.add(100)    // ๊ฐ’ 100์„ ์ถ”๊ฐ€

 

์‹ค์Šต

์ด๋ฆ„, ํ•™๋ฒˆ, ๋‚˜์ด ๋“ฑ ์ €์žฅํ•˜๊ณ  ์ถœ๋ ฅํ•˜๊ธฐ

 


์กฐ๊ฑด๋ฌธ

 

if ๋ฌธ

- ์กฐ๊ฑด์ด true, false์ธ์ง€ ๋”ฐ๋ผ ์–ด๋–ค ์ž‘์—…์„ ํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •

- ์ด์ค‘ ๋ถ„๊ธฐ๋ผ๊ณ ๋„ ๋ถ€๋ฆ„

- if๋ฌธ, if-else๋ฌธ

 

when ๋ฌธ

- ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์–ด๋–ค ์ž‘์—…์„ ํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •

- ๋‹ค์ค‘ ๋ถ„๊ธฐ๋กœ ์‚ฌ์šฉ๋จ

fun main() {
    var count : Int = 85
    if(count >= 90){
        println("if๋ฌธ: ํ•ฉ๊ฒฉ(์žฅํ•™์ƒ)")
    }else if (count >= 60){
        println("if๋ฌธ: ํ•ฉ๊ฒฉ")
    }else{
        println("if๋ฌธ: ๋ถˆํ•ฉ๊ฒฉ")
    }
    
    var jumsu : Int = (count / 10) * 10
//    when(jumsu){
//        100 -> println("when๋ฌธ: ํ•ฉ๊ฒฉ(์žฅํ•™์ƒ)")
//        90 -> println("when๋ฌธ: ํ•ฉ๊ฒฉ(์žฅํ•™์ƒ)")
//        80, 70, 60 -> println("when๋ฌธ: ํ•ฉ๊ฒฉ")
//        else -> println("when๋ฌธ: ๋ถˆํ•ฉ๊ฒฉ")
//    }
    when(jumsu){
        in 90 .. 100 -> println("when๋ฌธ: ํ•ฉ๊ฒฉ(์žฅํ•™์ƒ)")
        in 60 .. 89 -> println("when๋ฌธ: ํ•ฉ๊ฒฉ")
        else -> println("when๋ฌธ: ๋ถˆํ•ฉ๊ฒฉ")
    }
}

 


๋ฐฐ์—ด

์ผ์ฐจ์› ๋ฐฐ์—ด ์„ ์–ธ ํ˜•์‹

: Array(), arrayOf(), arrayOfNulls()

// Array()
var ๋ฐฐ์—ด๋ช… = Array<๋ฐ์ดํ„ฐ ํ˜•์‹>(๊ฐœ์ˆ˜, {์ดˆ๊ธฐ๊ฐ’})
var ๋ฐฐ์—ด๋ช… = Array<๋ฐ์ดํ„ฐ ํ˜•์‹>(๊ฐœ์ˆ˜) {์ดˆ๊ธฐ๊ฐ’}

var one = Array<Int>(4, {0})
one[0] = 10
one[3] = 20

// arrayOf()
val numbers = arrayOf(4, 5, 7, 3)	// ์ •์ˆ˜ํ˜•์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ฐฐ์—ด
val animals = arrayOf("Cat", "Dog", "Lion")	// ๋ฌธ์ž์—ดํ˜•์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ฐฐ์—ด

// arrayOfNulls()๋Š” ๋นˆ๋ฐฐ์—ด๋กœ ์„ ์–ธ

 

๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์•„๋‹Œ ์ƒˆ๋กœ์šด ํ˜•ํƒœ๋กœ ๋ฐฐ์—ด ์„ ์–ธํ•จ
์ฝ”ํ‹€๋ฆฐ์— Array๋ผ๋Š” ํด๋ž˜์Šค ์กด์žฌ, Array๋ฅผ ๊ฐ–๋Š” ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด Array ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ์–ธํ•œ๋‹ค.

 

์ด์ฐจ์› ๋ฐฐ์—ด ์„ ์–ธ ํ˜•์‹

var ๋ฐฐ์—ด๋ช… = Array<๋ฐฐ์—ด ๋ฐ์ดํ„ฐ ํ˜•์‹>(ํ–‰ ๊ฐœ์ˆ˜, {๋ฐฐ์—ด ๋ฐ์ดํ„ฐ ํ˜•์‹(์—ด ๊ฐœ์ˆ˜)})

// 3*4 ์ด์ฐจ์› ๋ฐฐ์—ด ์„ ์–ธํ•˜๊ณ  ๊ฐ’์„ ๋Œ€์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•
car two = Array<IntArray>(3, {IntArray(4)})
two[0][0] = 100
two[2][3] = 200

// arrayOf
val array1 = arrayOf(1, 2, 3)
val array2 = arrayOf(4, 5, 6)
val array3 = arrayOf(7, 8, 9)
val arr2d = arrayOf(array1, array2, array3)

val arr2d = arrayOf(array1(1, 2, 3), array2(4, 5, 6), array3(7, 8, 9))

 

- ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๋ฉด์„œ ๊ฐ’์„ ๋ฐ”๋กœ ๋Œ€์ž…ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•จ

var three : IntArray = intArrayOf(1, 2, 3)

 

ArrayList

var one = ArrayList<Int>(4)
one.add(10)
one.add(20)
var hap = one.get(0) + one.get(1)	// ์ฒซ๋ฒˆ์งธ ๊ฐ’ + ๋‘๋ฒˆ์งธ ๊ฐ’

 

Array๋Š” ์‚ฌ์ด์ฆˆ ๊ณ ์ •

ArrayList๋Š” ์ฒ˜์Œ์€ ์‚ฌ์ด์ฆˆ ๊ณ ์ •์ด์ง€๋งŒ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Œ

 


๋ฐ˜๋ณต๋ฌธ

for ๋ฌธ

for(๋ณ€์ˆ˜ in ์‹œ์ž‘..๋ step ์ฆ๊ฐ€๋Ÿ‰){
	// ์ด ๋ถ€๋ถ„์„ ๋ฐ˜๋ณต ์‹คํ–‰
}

for(๋ณ€์ˆ˜ in ๋ฐฐ์—ด๋ช….indices){
	// ์ด ๋ถ€๋ถ„์„ ๋ฐ˜๋ณต ์‹คํ–‰
}
// ๋ฐฐ์—ด์˜ ๋ชจ๋“  ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•
var one : IntArray = intArrayOf(10, 20, 30, 40)
for(i in one.indices){
	println(one[i])
}

// ์ฒจ์ž(i) ์—†์ด ๋ฐ”๋กœ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•
for(๋ณ€์ˆ˜ in ๋ฐฐ์—ด๋ช…){
	// ์ด ๋ถ€๋ถ„์—์„œ ๋ณ€์ˆ˜ ์‚ฌ์šฉ
}

 

while ๋ฌธ

while(์กฐ๊ฑด์‹){
	// ์กฐ๊ฑด์‹์ด true์ธ ๋™์•ˆ ์ด ๋ถ€๋ถ„ ์‹คํ–‰
}

- continue๋ฅผ ๋งŒ๋‚˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์˜ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ

- break๋ฅผ ๋งŒ๋‚˜๋ฉด ๋ฐ˜๋ณต ์ข…๋ฃŒ๋กœ ๋ฐ˜๋ณต๋ฌธ ๋ฐ–์œผ๋กœ ๊ฐ

 

์˜ˆ์‹œ

fun main() {
    var sum = 0

    for(x in 1..10){
        sum += x
    }
    println("sum: $sum")    // $: ์ถœ๋ ฅ๋ฌธ ์ค‘๊ฐ„์— ๋ณ€์ˆ˜ ํ‘œ์‹œํ•˜๋Š” ๋ฒ•

    sum = 0
    for (x in 1..10) sum += x
    println("sum: $sum")
}

// ๊ฒฐ๊ณผ
// sum: 55
// sum: 55

 

fun main() {
    var sum = 0
    var x = 0

    while (x <= 10){
        sum += x
        x++
    }
    println("sum: $sum")

    sum = 0
    x = 0

    do{
        sum += x
        x++
    }while (x <= 10)
    println("sum: $sum")
}
// while์€ ์กฐ๊ฑด ๋จผ์ € ํ™•์ธ -> ์ตœ์†Œ์ˆ˜ํ–‰:0๋ฒˆ
// do while์€ ์กฐ๊ฑด ๋‚˜์ค‘์— ํ™•์ธ -> ์ตœ์†Œ ์ˆ˜ํ–‰: 1๋ฒˆ

// ๊ฒฐ๊ณผ
// sum: 55
// sum: 55

 

fun main() {
    var one : IntArray = intArrayOf(10, 20, 30)
    for (i in one.indices){
        println(one[i])
    }
    for (value in one){
        println(value)
    }

    var two : Array<String> = arrayOf("ํ•˜๋‚˜", "๋‘˜", "์…‹")
    for (i in 0..2 step 1){
        println(two[i])
    }
    var k : Int = 0
    while (k < two.size){
        println(two[k])
        k++
    }
}

// ๊ฒฐ๊ณผ
// 10
// 20
// 30
// 10
// 20
// 30
// ํ•˜๋‚˜
// ๋‘˜
// ์…‹
// ํ•˜๋‚˜
// ๋‘˜
// ์…‹

 

// 3*3 ํฌ๊ธฐ์˜ ์ด์ฐจ์› ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ  for๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค

fun main() {
    var two = Array<IntArray>(3, { IntArray(3) })
//    var three = arrayOf(arrayOf(100, 110, 120), arrayOf(130, 140, 150), arrayOf(160, 170, 180))

    var value : Int = 100
    for (i in 0..2){
        for (j in 0..2){
            two[i][j] = value
            value = value + 10
            println("two[$i][$j]: ${two[i][j]}")        // ๋ฐฐ์—ด์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ${ } ์‚ฌ์šฉ
        }
    }
}

 

// 5๋‹จ๋ถ€ํ„ฐ 8๋‹จ๊นŒ์ง€ ๊ตฌ๊ตฌ๋‹จ์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ for๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•˜์‹œ์˜ค

fun main() {
    for (i in 5..8)
        for (j in 1..9)
            println("$i x $j = ${i*j}")
}

 

// 1๋ถ€ํ„ฐ 100์‚ฌ์ด์˜ ํ™€์ˆ˜๋ฅผ ๋ˆ„์ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ while๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•˜์‹œ์˜ค

fun main() {
    var sum = 0
    var i =  0

    while (i <= 100){
        if (i % 2 == 1)
            sum += i
        i++
    }
    println("sum = $sum")

    // for ๋ฌธ
    sum = 0
    i = 0
    for (i in 1..100 step 2)
        sum += i
    println("sum = $sum")
}

 

'Study > Android' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 6. ๋ ˆ์ด์•„์›ƒ(3) - ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ/์ปจ์ŠคํŠธ๋ ˆ์ธํŠธ ๋ ˆ์ด์•„์›ƒ(์ฒด์ด๋‹, ๊ฐ€์ด๋“œ๋ผ์ธ)/+ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ํ™œ์šฉํ•˜๊ธฐ(์ž๋™์ €์žฅ, ์ฝ”๋“œ์ž๋™์™„์„ฑ, ๋””๋ฒ„๊น…)  (0) 2023.07.03
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 5. ๋ ˆ์ด์•„์›ƒ(2) - ๋ฆฌ๋‹ˆ์–ด ๋ ˆ์ด์•„์›ƒ/๋ ๋Ÿฌํ‹ฐ๋ธŒ ๋ ˆ์ด์•„์›ƒ/ํ…Œ์ด๋ธ” ๋ ˆ์ด์•„์›ƒ  (0) 2023.06.30
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 4. ๋ ˆ์ด์•„์›ƒ(1) - ๋ทฐ  (0) 2023.06.29
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 3. ๊ธฐ๋ณธ ๋ฌธ๋ฒ•(2) - ํ•จ์ˆ˜/๋ฉ”์†Œ๋“œ, ์ „์—ญ๋ณ€์ˆ˜, ์ง€์—ญ๋ณ€์ˆ˜/ํด๋ž˜์Šค, ์ธ์Šคํ„ด์Šค/์ถ”๊ฐ€์ ์ธ ๋ฌธ๋ฒ•  (0) 2023.06.28
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 1. ์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ ์‹คํ–‰  (0) 2023.06.26