먼지나는 블로그

kotlin 문법 훑어보기 (+추가) 본문

내맘대로 공부/kotlin

kotlin 문법 훑어보기 (+추가)

고먼지 2021. 7. 5. 01:24

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