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")
}