코딩 일지

코틀린 기초문법

아는맛이무섭다 2024. 2. 6. 03:22

최근에 chat gpt에 너무 의존하지 않았나 라는 생각이 들어,코틀린을 다시 기초부터 다지는 시간을 가지게 되었습니다. 이제 앞으로 코틀린에 대해 이해를 늘리는 방향성으로 갈 것이고 오늘 프로그래머스에서 푼 문제를 쭉 나열해서 정리할겁니다.

 

우선 코틀린은 자바에도 호환이 되는 언어입니다. 안드로이드와 웹개발에 특화된 언어이며, 자바의 단점을 보완시킨 언어로 알고 있습니다. 그렇기 때문에 기본적으로 자바스크립트에 익숙하신 분들은 코틀린을 금방금방 익히고는 합니다. for, while, if가 비슷비슷하거든요. 완전히 똑같지는 않지만 큰 틀이 어느정도 비슷합니다.

 

과학을 잘하면 수학을 잘하는 것과 비슷한 이치입니다. 영어를 잘하면 스페인어도 곧 잘 배우는 이치와 비슷하고요.

 

코틀린은 세미콜론을 붙이지 않아도 된다는 특성도 가지고 있습니다.

 

-변수선언시 파스칼, 카멜 표기법을 권장합니다

 

파스칼 표기법 : QuestionFragment  \\ 단어시작이 모두 대문자

카멜: questionFragment \\ 단어 구분할때만 대문자 표기

 

-변수선언 방법

 

var - 보통 변해도 되는 값에 사용됩니다. 

val - 절대 변하면 안되는 값에 사용됩니다.

 

-자료형

코틀린은 값을 분류해서 인식합니다. 그래서 일반적인 계산을 할때도 뒤에 자료형을 구분지어서 하면 조금 더 오류없이 굴릴 수 있습니다.

 

fun main() {
    var intValue:Int = 1234 // :Int 를 붙여야 정수라고 인식. 그대신 소수점 표현이 아예 안됩니다
    var doubleValue:Double = 123.4 //실수는 소수점을 포함해 인식하기 위해서는 :Double을 붙여야 구분이됩니다.
   }
    
    fun main() {
    var string:String = 'a' //글은 뒤에 :String가 붙어야합니다.
    var stringValue = "one line string test" // 한줄을 쓸때는 "를 하나만쓰면 되고
    var multiLineStringValue = """multiline //여러줄 표시할때는 "를 세번 연속 쓰면 됩니다.
    string
    test"""
}

 

-형변환

형변환은 굉장히 쉽습니다. 그냥 .to(변하게할자료형)()를 뒤에다가 붙이면 끝나요.

 

예시

toByte()

toShort()

toInt()

toLong()

toFloat()

toDouble()

toString()

 

fun main() {
    var a: Int = 10 / 3
    var answer: Int = 0 
    
    answer = a * 100
    return answer
}

//여기에서는 답이 300

fun main() {
    var a: Int = 10 / 3
    var answer: Int = 0 
    
    answer = a.toDouble() * 100
    return answer
}

//여기에서는 답이 333

 

보통 toDouble()형이 Int(정수값)에서 실수로 변화를 시킬때 많이 사용됩니다. 프로그래머스에서 문제를 풀면서 느꼈는데 대체적으로 코딩을 맞게 짰는데 안돌아갔다하면, toDouble()을 끼워맞히면 잘 돌아갑니다.

 

Double은 실수값, Int는 정수값입니다. 소수점까지 표현되거나 정수로 표현할 수 없는 숫자를 표현할때는 Double 변형을 많이 시키고, 그외에는 문자를 정수값으로 변환시키거나 정수값을 문자값으로 변환시킬때 사용합니다. 그 이외에도 아주 많이 쓰입니다.

 

-If문

자바스크립트랑 동일합니다. 그래서 제가 코틀린을 좋아해요.

fun main (n) {
	var answer:Int = 0
    var num : Int = n
    
    if(num % 2 == 0) {
    	return true
    } else {
    	return false
    }
}

 

if문은 간단합니다. 조건을 () 요사이에 넣어주면 됩니다. 보통 If문 한줄만 있어도 돌아가는데 안돌아가면 else를 뒤에 붙여주면 돌아갑니다. else도 있고, else if 도 있습니다.

 

제가 입문을 할때 많이 헷갈린건데, = 이거하고 ==이거의 차이를 제가 잘 이해를 못했습니다. = 이건 값을 지정해줄때 쓰이는거고 ==요건 값이 완전히 똑같은지 확인할때 쓰는겁니다.

 

그러니까 = 은 4 = 5-1이고

== 은 2 = 2 라는 느낌인거죠.

 

==의 반대로는 !== 도 있습니다. 

 

그리고 값을 비교할때 >이거 하나만 있으면 작동이 안됩니다.

 

이상은 <= 초과는 < 입니다. 이거 입문할때는 많이 헷갈려요. 저는 이제 익숙하긴 하지만, 가끔 왜 작동이 안되나 싶으면 요런 잔실수 때문에 그렇습니다.

 

반복문 (for)

 

반복문이 While도 있기는 하지만 전 for문을 자주 사용해서 for만 적어놓겠습니다. 그리고 while 애매하게 이해가 안되서 작성을 하지 않는 것도 있고요.

 

fun main (n) {
    var numbers : Int = n
    for ( i in 0..numbers step 1) {
 		println(i) // 그러면 순서대로 1단위씩 반복. n에 10이 들어가면 0, 1,2,3,..10까지 반복해서 나옴.
    }
}

fun main (n) {
	var answer : Int = 0
    var numbers : Int = n
    for ( i in 0..numbers step 1) {
 		answer += i //이러면 i 값이 순서대로 더해져서 나옴 0 + 1 + 2.. 10 이렇게해서 나옴
    }
    
    return answer
}

 

answer += 뒤에는 n%2가 나와도 되고 다양한 공식을 도입해서 응용도 할 수 있습니다.

오늘은 코틀린에 대해서 아주 기초적인것만 다뤘습니다. 

 

내일 또 다시 뵈어요, 좋은 하루 되세요