먼지나는 블로그
kotlin 문법 훑어보기 (+추가) 본문
1. kotlin
fun main(args : Array<String>)
{
print("Hello World!")
}
- 자바와 다른점
세미콜론이 안붙음
system.out 수식어가 붙지 않음
print or println
2. Function
fun sum(a:Int, b:Int): Int
{
return a+b
}
-> 구문식으로 작성한 함수
fun sum(a:Int, b: Int) = a+b
-> 코틀린의 가장 큰 특징 : 표현식으로 작성한 함수
= 구문식과 동작은 동일하게 이뤄짐
fun max(a: Int, b: Int) = if (a>b) a else b
-> 보통은 구문식으로 많이 작성하지만 코틀린에선 표현식으로도 많이 작성함
value / variable
val a: Int = 1
val b = 2 // int형이라고 따로 변수선언을 해줄 필요가 없음 타입추론됨
val c = 3.14
val d: String
d = "필수로 있어야 하는 구문"
d의 초기값을 선언해주지 않으면 null값이 들어가기 때문에 반드시 초기화해주어야 함
3. Type
정수형
- byte
- short
- int -> 123
- long->123L // int형이 아닌 Long형 타입으로 지정되고 싶을때 값뒤에 L을 붙여줌
실수
- float -> 1.234f // 실수를 입력할 경우 double형 타입으로 기본지정이 되기 때문에 f를 붙여줌
- double ->1.234
그 외
- char
- string
var str String = "abcd"
str = "abcd" + 1 // abcd1
str = "abcd" + "efg" // abcdefg
- boolean
val myTrue: Boolean = true
val myFalse: Boolean = false
val boolNull: Boolean? = null
물음표가 붙은 boolean형은 null값도 가질 수 있게 됨. 반면 물음표가 붙지 않으면 true와 false 값만 가질 수 있음
4. for 반복문
for(i in 1...5){
println(i)
}
// 1 2 3 4 5
-> 1부터 5까지 하나씩 꺼내 i에 할당함
for(i in 6 downTo 0 step 2){
println(i)
}
// 6 4 2 0
-> downTo : 위에서부터 아래로 내려감(감소) / step 2 : 두 칸씩 뛰어감
= 6에서 0까지 내려가면서 2칸씩 뛰어감
for(i in 1..5 step 3){
print1n()
}
// 1 4
-> 1부터 5까지 증가되면서 3칸씩 뜀 (4까지 출력된 상황에서 3이 증가되면 7로 초과되기 때문에 for문 종료)
추가 : 배열을 돌릴경우 0부터 시작되기 때문에 -1을 해줘야하는 번거로움이 있음
이 때 until을 사용하면 편함 -> 0 until 10
val numberList = listOf(100, 200, 300)
for(number in numberLisr)
println(number)
}
// 100 200 300
-> listOf(100, 200, 300) : 100, 200, 300 세개의 정수를 int형 리스트로 만듦
= numberList에 들어있는 값들을 차례대로 출력
5. While 반복문
var x = 5
while (x > 0){
println(x)
x--
}
// 5 4 3 2 1
while문 : 실행 전 조건을 먼저 봄
-> x가 0보다 클 때 실행되며 실행될 때마다 1씩 감소하기 때문에 5 4 3 2 1로 출력됨
var x = 0
while (x > 0){
println(x)
x--
}
// 출력없음
-> x가 0보다 클 때 실행되는 while문이기 때문에 0의 값을 가진 x는 while문을 돌지 않는다
var y = 0
do {
print(y)
y--
}while(y > 0)
// 0
do-while문 : 일단 실행 된 후 다시 돌릴 것인지 조건을 살핌
-> 무조건 한번 실행되기 때문에 y값인 0을 출력함
그 후 y가 0보다 커야된다는 조건에 막혀 다시 돌지 못함. 따라서 0만 출력됨
6. if문
var max: Int
if(a > b){
max = a
}else{
max = b
}
kotlin if문은 java의 if문과 흡사하다!
-> a가 b보다 크면 max에 a값을 할당 아니라면 max에 b값을 할당함
// As expression
val max = if(a > b){
print("choose a")
a
}else{
print("choose b")
b
}
if문 역시 표현식으로 사용할 수 있음!
-> 첫번째 if문 코드와 같은 결과가 도출되는 것을 확인할 수 있음
7. When문
when(x){
1 -> print("x == 1")
2 -> print("x == 2")
else -> {
print("x is neither 1 nor 2")
}
}
kotlin에는 switch문이 없는 대신 when문이 존재함!
-> x가 1일 경우 "x==1" 이 출력 x가 2일 경우엔 "x==2" 문장이 출력됨
-> 두가지 경우 모두 아니라면 else문으로 넘어가 "x is neither 1 nor 2" 문장이 출력됨
when(x){
0, 1 -> print("x == 0 or x == 1")
else -> print("otherwise")
}
-> x가 0이거나 1이면 "x==0 or x==1" 문장 출력 아니라면 "otherwise" 문장 출력
when(x){
in 1..10 -> print("x는 1부터 10 범위 안에 있음")
!in 10..20 -> print("x는 10부터 20 범위 안에 없음")
else -> print("otherwise")
}
직접적인 값이 아닌 연산자도 쓸 수 있다!
-> in 1..10 : x가 1부터 10까지의 범위 안에 있다면 "x는 1부터 10 범위 안에 있음" 출력
!in 10..20 : 10부터 20 범위 안에 없다면 "x는 10부터 20 범위 안에 없음" 출력
두 경우 모두 아니라면 "otherwise" 출력
when(x){
is Int -> print("x는 int형")
else -> print("x는 int형이 아님")
}
-> is Int : x의 타입이 Int형이다 맞다면 "x는 int형" 출력 Int형이 아니라면 "x는 int형이 아님" 출력
'내맘대로 공부 > kotlin' 카테고리의 다른 글
kotlin firebase 설정 및 로그인 구현 (0) | 2021.07.15 |
---|---|
Kotlin Collection 개념 (0) | 2021.07.11 |
BMI 계산기 구현 (0) | 2021.07.10 |
Kotlin 개발 vs Java 개발 (0) | 2021.07.05 |