공부 자료

 

https://www.youtube.com/watch?v=gJJVLju4XS0&list=PLQdnHjXZyYadiw5aV3p6DwUdXV2bZuhlN&index=5

 

하루에 딱 2개만 성실하게 배우도록 하자.

 

아직은 어려운 것 같다.

 

 

조건문? 비교연산자?

 

조건문은 간단히 if문이다. if문은 조건이 참일 경우 따라오는 구문을 실행하는 기능을 가진다.

 

fun main() {

  var a = 7        ------> 변수를 만들고

  if(a > 10) {        -------> a가 10보다 클 때

    println("a는 10보다 크다")        -------> "a는 10보다 크다"라고 출력한다.

  }

 

}

 

이렇게만 한다면, 조건이 거짓이기 때문에 아무것도 실행되지 않는다.

 

이럴땐, else가 필요하다.

 

fun main() {

  var a = 7

  if(a > 10) {

    println("a는 10보다 크다")

  }

  else {

    println("a는 10보다 작거나 같다") ------> 그 외의 경우 "a는 10보다 작거나 같다"를 출력한다.

 

}

 

조건이 참일 경우 (a 값이 10보다 클 경우)는 "a는 10보다 크다"가 출력될 것이다.

 

 

이런 조건을 걸 때, 비교연산자라는 것을 사용한다.

 

비교연산자의 종류

 

부등호

 

<(작다) <=(작거나 같다) >(크다) >=(크거나 같다) !=(같지 않다)

 

등호

 

==(같다) [=은 값을 할당한다는 뜻이므로 =를 두번 쳐서 같다고 표시한다.]

 

자료형이 맞는지 틀린지 체크하는

 

is(맞는지) !is(틀린지)

 

[a is Int -> a의 자료형이 Int이다.] <- 형변환까지 한번에 시켜줌

 

등이 있다.

 

 

 

다음으로 다중 조건문을 알아보자.

 

다중 조건문은 if가 참과 거짓만을 비교할 수 있는 반면 when은 하나의 변수를 여러개의 값과 비교할 수 있다는 장점이 있다.

 

fun main() {

 

  doWhen(1)

  doWhen("DiMo")

  doWhen(12L)               --------------> doWhen이라는 함수에 이 값을 할당한다.

  doWhen(3.14159)

  doWhen("Kotlin")

 

}

 

fun doWhen (a: Any) {       ----------------> doWhen이라는 함수를 만들고, 패러미터 a를 만든다.

 

  when(a) {

        1 -> println("정수 1입니다.")     -------------> 1일 경우 출력

        "DiMo" -> println("디모입니다.")      ---------------> "DiMo"일 경우 출력

        is Long -> println("Long 타입 입니다.")  ----------------> Long타입일 경우 출력

        !is String -> println("String 타입이 아닙니다.")    ---------------> String타입이 아닐 경우 출력

        else -> println("어떤 조건도 만족하지 않습니다.")   -------------->그 외의 경우 출력

  }

 

}

 

결과는 직접 알아보면 된다.

 

이제까지 when이 조건문으로 사용되는 것을 보았고,

 

when은 또한 표현식으로도 사용이 가능하다.

 

직접 값으로 사용하려면,

 

1 -> println("정수 1입니다.")    

"DiMo" -> println("디모입니다.") 

 

이 상태에서

 

1 -> "정수 1입니다"

"DiMo" -> "디모입니다"

 

이렇게 사용해주면  변수에 할당하거나 직접 값으로서 사용할 수 있다.

 

 

fun main() {

 

  doWhen(1)

  doWhen("DiMo")

  doWhen(12L)  

  doWhen(3.14159)

  doWhen("Kotlin")

 

}

 

fun doWhen (a: Any) {      --------------------->doWhen이라는 함수가 작동하면

 

  var result = when(a) {      ---------------------> result라는 변수 안에 when(a)를 넣는다.

        1 -> "정수 1입니다."

        "DiMo" -> "디모입니다." 

        is Long -> "Long 타입 입니다." 

        !is String -> "String 타입이 아닙니다."   

        else -> "어떤 조건도 만족하지 않습니다." 

  }

 

}

 

 

열심히 공부하자 화이팅 ㅋ.ㅋ

Posted by 노꼴甲
,

 

공부 자료

 

https://www.youtube.com/watch?v=ZMOsbFCEeCY&list=PLQdnHjXZyYadiw5aV3p6DwUdXV2bZuhlN&index=2

 

 

나는 이 분의 유튜브 강의를 보며 공부한다.

 

일단 첫 강의이고, 안드로이드 스튜디오를 다운받지 못했거나 아예 처음 시작하는 분들은 코틀린 강좌 #1을 보길 바란다.

 

 

 

주석 : 많은 언어에서 사용하는 두 가지 방식의 주석을 지원한다.

 

// 주석 //  이렇게 두 줄을 긋기도 하고, 여러 줄로 나눌 때에는 /*줄마다 *앞에 *별표 */ 이런 방식을 사용한다.

 

 

클래스 이름의 표기법 : 파스칼 표기법. [ClassName] 이런 식으로 모든 단어의 시작 첫 글자는 대문자로 사용한다.

 

 

함수나 변수 이름의 표기법 : 카멜 표기법. [functionName] 첫 단어의 시작만 소문자, 나머지는 대문자로 사용한다.

 

 

 

변수 선언 : var, val 로 시작한다.

 

var = 일반적인 변수이며, 언제든 읽기 쓰기가 가능하다.

 

val = 일반적인 변수이지만, 선언 시에만 초기화가 가능하고 중간에 값을 변경할 수 없다.

 

 

 

변수는 선언 위치에 따라 두 가지 이름으로 불린다.

 

클래스에 선언 될 경우 : Property (속성) [아직 무슨 소리인지 모르겠다]

 

이외 스코프에 선언 될 경우 : Local Variable (로컬 변수) [무슨 소리인지 모르겠다]

 

- 무슨 소리인지 모르겠으니까 나중에 알아보도록 하자.

 

 

 

 

https://play.kotlinlang.org에 들어가서 웹으로 컴파일을 간단하게 시작해보자.

 

 

fun main() {        --------> 메인이라는 함수 안에

 

     var a: Int       --------> var으로 변수 a를 지정하고, a의 자료형은 Int이다. ( : 을 붙여 자료형을 지정하는 듯)

     printf(a)        --------> a의 값을 출력한다

 

}

 

하지만 이렇게 하면, var쪽에서는 warning이,

 

printf쪽에서는 error이 뜰 것이다.

 

여기서,

 

warning은 실행에 큰 문제가 없지만 약간의 오류가 있다고 알려주는 것이고,

 

error은 구문상에 심각한 문제가 있어 컴파일 자체를 할 수 없게 만드는 오류이다.

 

컴파일? : [특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램을 말한다.]

 

 

error쪽으로 마우스를 대보면 변수 'a'가 반드시 초기화 되어야 한다고 나온다.

 

이 말은 'a'라는 변수에 아무런 값이 할당되지 않았다고 하는 것이다.

 

var a: Int = 123

 

이렇게 변수 a를 123으로 지정해주자. (여기서 '='는 할당연산자이며, 오른쪽의 값을 왼쪽에 넣어준다고 보면 된다.)

 

그러면 오류가 사라지고 a의 값인 123이 printf에 의해 출력된다.

 

** 변수에 값을 할당하는 것은 반드시 선언시에 할 필요는 없으며, 변수를 참조하여 사용하기 전까지만 해주면 된다.

 

 

var a: Int

 

a = 123

 

이런식으로 말이다.

 

 

그리고 프로그램에 따라서는 변수에 값이 할당되지 않았다는 것을 하나의 정보로 사용하는 경우도 있다.

 

이런 경우는 변수 선언시

 

var a: Int? = null 처럼 자료형 뒤에 물음표를 붙여주면 된다. (Null을 허용하는 Nullable 변수로 지정)

 

--------------------------------------------------------------

 

이게 무슨 말인지 고민해봤는데 아마 스위치의 On / Off로 설명할 수 있지 않을까 싶다.

 

변수에 값이 들어있을 경우 = 스위치 On 명령

 

변수에 값이 할당되지 않은 경우(Null) = 스위치 Off 명령 이런식으로 말이다.

 

--------------------------------------------------------------

 

** Nullable 변수는 Null Pointer Exeption이 발생할 수 있기 때문에 꼭 주의해서 사용해야한다.

 

 

 

 

<이하 코틀린 자료형 정리>

 

숫자

 

정수형 : Byte (8bits) Short (16bits) Int (32bits) Long (64bits)  [여기서 아마 IntLong을 많이 쓰지 않나 싶다.]

 

실수형 : Float (32bits) Double (64bits) 

 

사용하고자 하는 숫자의 범위에 따라 선택해서 사용하면 된다.

 

2진수와 10진수, 16진수가 있지만 나에게는 아직 어려울 것 같아 공부하지 않았다.

 

 

문자

 

1개의 문자 : char , 작은 따옴표로 문자를 감싼다.

 

여러 단어의 문자 : String

 

Boolean (참값 혹은 거짓값) : true, false로 지정.

 

일반적으로 문자를 쓸 때는 큰 따옴표(")로 지정해주면 된다.

 

 

 

 

기본 중 기본이므로 꼭 외우자.

Posted by 노꼴甲
,