본문 바로가기
Study/Kotlin

[Kotlin] 기초 문법 #01

by YOONAYEON 2022. 2. 4.
Kotlin

함수형 언어

// 한 줄 주석

/* 여러 줄 주석 */

fun main() {     }  : 코드 시작점

println("세미 콜론 안붙이고 줄바꿈 출력")

클래스 이름은 파스칼 표기법 : ClassName 모든 단어를 대문자로 시작

함수/변수 이름은 카멜 표기법 : fuctionName 첫 단어만 소문자로 시작

 

변수 선언

var : 일반적인 변수로 언제든지 읽기/쓰기가 가능함

val : 선언 시 초기화한 이후로 값 변경 불가함 (런타임시 변경되지 말아야 할 값을 안전하게 val로 선언)

클래스에 선언되는 변수 : 속성(property)

Scope범위 내에 선언된 변수 : 로컬 변수

 

기본 자료형 (자바와 거의 비슷)

숫자: Byte, Short, Int, Long (정수형)

       Float, Double (실수형)

var a: Int = 123	//기본값 초기화 필수(null허용 안됨)
var b: Int
b = 123
var c:Int = null	//nullable변수

 

문자: char (글자 하나가 2bytes의 메모리 공간 사용)

var charValue: Char = 'a'	//문자변수, 특수문자도 지원
val str = "문자열 변수"

 

Boolean

var booleanValue : Boolean = true

 

형변환 함수

toByte(), toShort(), toInt(), toLong(), toFloat(), toDouble(), toChar()

var a: Int = 12345		//명시적 형변환(변환될 자료형을 개발자가 직접지정)
var b: Long = a.toLong()

다른언어의 암시적 형변환은 지원하지 않음 (변수할당 시 자료형 지정 안해도 자동으로 형변환 해주는거)

 

배열

처음 선언했을 때의 전체 크기를 변경할 수 없다. 그렇지만 빠른 입출력 가능

var intArr = arrayOf(1,2,3,4,5)
var nullArr = arrayOfNulls<Int>(5)	//null로 채워진 배열
intArr[0] = 8
println(intArr[2])

 

타입추론

타입추론: 변수,함수 선언 또는 연산이 이루어질 때, 자료형을 코드에 명시하지 않아도 코들린이 자동으로 자료형 추론

자료형없이 값을 할당할 경우

var a = 1234	//Int형
var b = 1234L	//Long형
var c = 12.45	//Double형
var d = 12.45f	//Float형
var g = true	//boolean형
var h = 'c'		//Char형

-> 대부분은 코틀린의 타입추론 기능을 이용하여 선언

 

함수
fun main(){
	prinntlnt(add(5, 6, ,7))	//18
}

fun add(a: Int, b:Int, c:Int) : Int {		//반환값은 없으면 생략 가능
	return a + b + c
}
//또는
fun add(a:Int, b:Int, c:Int) = a+b+c		//단일 표현식 함수

 

조건문과 비교연산자
var a = 7
if(a > 10)
	println("a가 더 크다")
else
	print("작거나 같다")
    
a is Int	//좌측 변수가 우측 자료형에 호환되는지 여부, 그리고 형변환까지 한번에

 

자바의 switch문이 when으로 사용 : 하나의 변수를 여러 개의 값과 비교할 수 있는 장점

fun sampleWhen(a: Any){	//Any는 어떤 자료형이든 상관없이 호환되는 코틀린 최상위 자료형
	when(a){
    	1->println("정수 1입니다")
        "ex"->println("문자열입니다")
        isLong->println("long타입 입니다")
        !isString->println("문자가 아님")
        else->println("어떠한 조건도 만족하지 않음")
    }
}

여러 개의 조건이 맞을 경우에도 먼저 부합되는 조건만 실행

var result = when(a){
	1->"정수"
    "문자열"->"문자형"
}

 

반복문
var a = 0

while(a < 5){
	print(a++)		//01234
}

do{
	println(a++)
}while(a < 5)

for(i in 0..9)
	print(i)		//0123456789
    
for(i in 0..9 step 3)
	print(i)		//0369
    
for(i in 9 downTo 0)
	print(i)		//9876543210
    
for(i in 'a'..'e')
	print(i)		//abcde

 

흐름제어

break, continue의 쓰임은 자바와 동일

이중 반복문에서 두번째 반복문 조건에 따라 두개의 반복문을 모두 탈출하고 싶은 경우

loop@ for(i in 1..10)		//loop는 이름임(변경)
		for(j in 1..10)
        	if(i==1 && j==2)
            	break @loop

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

[Kotlin] 기초문법 #02  (0) 2022.02.04