코틀린의 변수, 제어문, 반복문을 알아보자.
다른 프로그래밍 언어를 해 보았다면 큰 문제없이 이해가 될 것이다.
1. 변수 선언
// 변수 선언
var intVar: Int = 3
val intVal: Int = 3
intVar = 4 // var은 변경 가능
intVal = 4 // val은 변경 불가능, 컴파일 에러가 발생한다.
우선 변수 선언은 var과 val이 있다.
var은 변경 가능한 변수다. 위의 코드에서 intVar = 4는 정상 동작한다.
val은 변경 불가능한 변수다. 그래서 intVal = 4는 IDE에서 빨간 줄을 그어 줄 것이며, 컴파일 에러가 발생한다.
var 변수명: 변수타입 = 값
val 변수명: 변수타입 = 값 과 같이 선언한다.
// val stringVar1: String = "string"
val stringVar1 = "string" // 타입 추론으로 인해 변수명 뒤의 타입 선언 생략 가능
하지만 위 처럼 타입추론으로 인해 변수타입을 생략할 수 있다. 할당된 값을 보고 Int 인지 String인지 확인해서 알아서 변수타입을 결정한다.
// 문자열 안에 $ 기호로 변수를 사용할 수 있음(String Interpolation)
val stringVal2 = "intVar : $intVar, intVal : $intVal"
// {}를 사용하여 식도 가능함
val stringVal3 = "intVar + intVal = ${intVar + intVal}"
변수들을 조합하여 문자열을 만들거나 로그를 찍기위해 출력을 한다거나 할 때 위와 같이 편하게 사용할 수 있다.
C언어에서 printf("%d %f %s", a, b, c) 를 좀 더 편하게 쓰는 기분이랄까?
2. 제어문
// if ~ else if ~ else
if(intVar > 3) {
print("intVar > 3")
} else if(intVar < 2) {
print("intVar < 2")
} else {
print("What is intVar?")
}
제어문은 비슷하게 사용하면 된다.
// in을 사용해 어떤 범위안에 있는지도 체크 가능
if(intVal in 0..3) {
// Do something
}
in 키워드를 사용하면 어떤 범위안에 있는지 체크할 수도 있다.
// when. switch를 생각해보자.
when(intVar) {
0 -> print("int Var is 0")
1, 2 -> print("int Var is 1 or 2")
3 -> print("int Var is 3")
else -> print("What is intVar?")
}
switch문은 when으로 사용한다.
switch와 비슷하게 생겼다.
위 처럼 케이스를 나누는 것 외에도 다양하게 활용할 수 있다. 다음에 알아보자.
3. 반복문
// for loop
for(i in 0 until 10) {
print("i :: $i")
}
// Colletion을 활용할 수도 있음
val strs = listOf("a", "b", "c", "d")
for(str in strs) {
}
for문은 위 처럼 사용한다. for(i = 0; i < 10; i++) 이나 for i in range(10) 이나.. 뭐 이런것과 조금 다르게 생겼지만 비슷비슷하다.
나중에 자세히 다루겠지만 Collection을 활용할 수 있다.
// while loop
var index = 0
while(index < 10) {
print("Index :: $index")
index++
}
while문은 익숙한 느낌이다.
사실 for문을 거의 사용하고 while은 잘 안써봤다. 하지만 기본적으로 위와 같이 생겼고 활용하기 나름같다.
기본적인 문법만 정리하다 보니 영 느낌이 없긴 하다.
하지만 앞으로 할 내용은 굉장히 많다. 작성하면서도 공부를 많이 해야할 것 같다.
후.. 화이팅..!
'개발 > Kotlin' 카테고리의 다른 글
코틀린(Kotlin) 문법 뽀개기 - 6. Collections란? filter, map, reduce, sort 함수의 사용 (0) | 2020.08.08 |
---|---|
코틀린(Kotlin) 문법 뽀개기 - 5. 람다(Lambda), 인라인 함수(Inline Function) (0) | 2020.08.03 |
코틀린(Kotlin) 문법 뽀개기 - 4. 클래스와 상속, 그리고 인터페이스 (1) | 2020.06.27 |
코틀린(Kotlin) 문법 뽀개기 - 3. 함수 (0) | 2020.06.14 |
코틀린(Kotlin) 문법 뽀개기 - 1. Hello Kotlin! (0) | 2020.06.09 |