본문 바로가기

Language/Kotlin

01-1. Kotlin 문법 훑어보기

 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 연산자

더보기
더보기
더보기
더보기
더보기

? : Null safety 연산자  

  • 코틀린의 타입(type) 시스템의 코드에서 NullPointerExeption을 제거하기 위한 것.
  • 이의 사용 유무를 통해 null이 가능한 참조와 그렇지 않은 참조를 구분.
  • null을 참조하기 위해서는 String?와 같이 선언해야 하고 String은 null을 참조할 수 없다
var a: String = "abc"
a = null // 컴파일 에러 발생
var b: String? = "abc"
b = null // ok
print(b)

 

 

 

 

 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 체킹

 

 

 


코틀린 문법 공부 사이트 (URL)

 
 

 

 

 

728x90

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

01-2. Kotlin vs Java  (0) 2022.01.23
[코틀린 시작하기] 01-1. 코틀린의 탄생배경  (0) 2022.01.23