1. 함수 선언
//[방식 1] 구문식
fun sum(a: Int, b : Int) : Int {
return a + b
}
//[방식 2] 표현식
fun sum(a: Int, b: Int) = a + b
일반적으로 많은 언어에서는 방식 1로 함수를 선언을 많이 하지만, 코틀린에서는 방식 2로도 많이 함.
//[방식 2] 표현식의 응용 버전
fun max(a: Int, b: Int) = if (a>b) a else b
또한 표현식 표현으로 단순식만 올 수 있는 것이 아니라, 아래의 코드와 같이 다양한 표현이 가능하다.
2. 상수,변수 선언
1. Val(ue) : 값이 변할 수 없는 상수 선언
val a: Int =1
val b = 2
val c = 3.14
val d: String
d = "필수로 있어야 하는 구문"
// d = "d의 초기값이 없으면 null이 될 수 있는데, d는 null이 될 수 없기 때문에."
val e: String?
val d: String = "첫번째 초기화"
e = "두번째 초기화"
- val의 경우 초기화가 한번만 가능.
- ?의 경우 null값이 올 수 있음을 의미.
- 상수 선언시, 초기화의 경우 한줄에 함께 해주어도 되고 따로 해주어도 된다.
단, 상수 선언시 ?이 없을 경우, 즉 null이 허용되지 않을 경우엔 초기화가 필수이다.
2. Var(iable) : 값이 변할 수 있는 변수 선언
var a: Int =1
a = 4
- var의 경우 초기화 여러번 가능. 값 변경 가능.
※ [참고] '?' : Null safety 연산자
3. 반복문
1. For문
for (i in 1..5) {
println(i)
}
# result : 1 2 3 4 5
# 설명 : 끝을 포함하여 시작부터 반복하며 오름차순 출력. (step 별도로 지정 X : default=1)
for (i in 1..5 step 3) {
println(i)
}
# result : 1 4
# 설명 : 위와 유사. 단, step이 3으로 지정되어 있으므로 세 칸씩 뛰어넘으며 오름차순 출력.
for (i in 6 downTo 0 step 2) {
println(i)
}
# result : 6 4 2 0
# 설명 : 위와 반대. 내림차순 출력. 이때 step이 2이므로 두 칸씩 뛰어넘어가며 출력
val numberList = listOf(100, 200, 300)
for (number in numberList) {
println(number)
}
# result : 100 200 300
# 설명 : literable(반복가능객체)인 경우 코틀린에서 for문을 지원한다.
"""※ 추가설명
- 코틀린의 range(..)의 경우 끝인 마지막 값을 포함.
- 마지막 값을 포함하지 않고 싶은 경우 'until' 사용.
"""
2. While문
# while문의 경우 Java와 문법이 동일하므로 자세한 설명 X.
# while문과 do-while문의 차이 : while은 조건->구문 실행, do-while은 구문 실행->조건 확인.
var x = 5
while(X>0) {
println(x)
x--
}
# result : 5 4 3 2 1
x = 0
while (x>0) {
println(x)
x --
}
# result : 출력없음
var y = 0
do {
print(y)
y --
} while(y>0)
# result : 0
#결론 : while문과 do-while문의 차이로 인해 2와 3의 코드의 결과가 다르다.
3. 조건문
1. If문
var max: Int
if (a > b) {
max = a
} else {
max = b
}
# As expression
val max = if (a > b) {
print("Choose a")
a
} else {
print("Choose b")
b
}
2. When문
# 코틀린은 자바와 다르게 switch문이 없는 대신 when문이 O.
when(x) {
1 -> print("x==1")
2 -> print("x==2")
else -> {
print("x is neither 1 nor 2")
}
}
when(x) {
0,1 -> print("x==0 or x==1")
else -> print("otherwise")
}
when(x) {
in 1..10 -> print("x는 1부터 10 범위 안에 있음")
!in 10..20 -> print("x는 10부터 20 범위 안에 없음")
else -> print("otherwise")
}
when(x){
is Int -> print("x는 인트임")
else -> print("x는 인트형이 아님")
}
- val의 경우 초기화가 한번만 가능
- in == contain
- is == type 체킹
728x90
'Language > Kotlin' 카테고리의 다른 글
| 01-2. Kotlin vs Java (0) | 2022.01.23 |
|---|---|
| [코틀린 시작하기] 01-1. 코틀린의 탄생배경 (0) | 2022.01.23 |