GDSC HUFS 3기/Android with Kotlin Team 2

[2팀] Kotlin Section 5 - Variables, Operators and Expressions

제주도감귤쥬스 2021. 10. 4. 21:39

이 글은 udemy 강의를 참고하여 작성하였습니다.

작성자 : 강소영

개발환경은 Windows, Android Studio입니다.

 


1. Comments in Kotlin - 코틀린에서 주석 달기

주석은 컴파일러가 무시하는 요소이다. 따라서 프로그램을 실행할 때 전혀 영향을 주지 않는다. 그저 프로그램에 대한 설명을 달아놓는 것이다. 코드를 설명하고, 어떤 의미인지에 대해 명확하게 하여 프로그램을 읽는 다른 프로그래머들에게 도움을 준다.

 

1)한 줄 주석 달기

 문장 앞에 슬래시 두 개(//)를 덧붙이면 한 줄 주석을 달 수 있다.

//This is the single line comment

 한 줄 주석은 코드를 잠시 비활성화하는 경우에도 유용하게 사용할 수 있다. 꼭 설명하는 용도로만 사용되는 것이 아니다.

 

 2)여러 줄 주석 달기

 문장의 앞에 슬래쉬 별(/*), 문장의 끝에 별 슬래쉬(*/)를 덧붙이면 여러 줄 주석을 달 수 있다.

 /*Hello! nice to meet you.
   I love you
   She loves me */

 두 줄 주석도 한 줄 주석과 마찬가지로 꼭 설명하는 용도로만 사용하는 것이 아니라 여러 줄의 코드를 잠시 비활성화하는 경우에도 사용할 수 있다.

 

 주석은 프로그래머가 프로그램을 설명해 놓은 것이므로, 어떤 프로그램을 읽어보고 활용해야 할 때 주석을 무시하지 말고 주의깊게 보도록 해야 한다.

 

 

2. Variables - 변수 

Kotlin에서 변수란,  우리가 작업하는 어떤 데이터에 대해 우리가 원하는 이름을 지어주는(할당해주는) 수단이다.

안드로이드 기기의 메모리는 우리가 변수를 추가하고, 이름을 할당하도록 할 수 있는 거대한 창고라고 할 수 있다. 변수들은 이 거대한 창고에 저장되었다가 필요할 때 꺼내서 사용할 수 있는 도구인 것이다.

 

Part 1

변수를 정하는 것은 프로그래머의 마음이다. 변수를 정하는 것에 대해 특별한 제도가 있지 않다는 것이다. 그러나 보편적으로 변수를 선언할 때 사용하는 방법이 있으므로, 보통의 프로그래머들은 그러한 보편적인 방법을 사용해 변수를 선언한다. 보편적인 방법으로 프로그램을 작성한다면 가독성이 좋아지는 것 뿐만 아니라 전체적으로 일관성이 있는 프로그램이 될 것이다.

 

보통 한 단어와 같이 간단한 변수의 이름은 소문자로 시작한다.

예시 : simple

 

그러나 변수 이름에 두 개 이상의 단어가 있는 경우, 두 번째 단어는 대문자로 표시한다.

예시 : notSimple

        sheLovesMe

이런식으로 첫 번째 단어의 첫 글자는 소문자, 그 다음단어부터의 첫 글자는 대문자로 표시하는 것을 Camel Casting이라고 부른다.

 

Part 2

Kotlin에서는 많은 유형의 데이터를 다루기 위해 변수를 저장하거나, 조작할 수 있다. 따라서 우리가 만드는 우리만의 고유한 유형, 형태의 변수를 저장할 수 있지만, Kotlin에서 일반적으로 사용되는 변수의 유형이 있으므로 이에 대해 알아보도록 하자.

 

1)숫자형 변수

정수형 - Int, Long

: Long은 Int보다 큰 값을 저장할 수 있다. 예를 들어, int에는 10억까지의 숫자까지만 저장할 수 있다면 Long은 10억보다 큰 숫자까지도 저장할 수 있는 것이다.

 

실수형 - Float, Double

 : Double은 Float보다 큰 값을 저장할 수 있다. Long과 Int의 경우와 마찬가지라고 할 수 있다.

 

2)Boolean 변수

Boolean 변수는 오직 True 또는 False 값만을 가진다.

 

3)문자형 변수 - char, String

char은 character의 약자로, 문자 1개를 저장하는 자료형이다. "A", "B", "가"와 같은 것을 저장할 수 있다. 따라서 긴 문장을 저장하고 싶으면 String 자료형을 사용해야 한다.

 

4)val, var

변수를 선언할 때 두 가지의 핵심 단어가 있다. var과 val이다. int, float와 같은 것의 앞에 붙여주는 것이다.

val 

value의 줄임말이다. 이 값에 할당된 변수는 선언된 이후 오직 읽기만 할 수 있다. 변경이 불가능하다. immutable하다고 한다. Java에서의 final과 같은 역할을 할 수 있다고도 볼 수 있다.

만약 안드로이드 스튜디오에서 이 값을 선언한 후 변경한다면 오류가 표시되면서 프로그램이 컴파일되지 않을 것이다.

val sheLovesMe: Int = 10
val helloWorld: Float = 3.14f //float 변수를 선언할 때는 숫자 뒤에 f를 붙여주어야 한다.
val veryVeryLong: Long = 123456789123456789
val toYou: Boolean = true
val myHometownIs: String = "Seoul"
myHometownIs = "Incheon" //이렇게 하면 에러가 난다. myHometownIs 변수가 val로 선언되었기 때문이다. 이런식으로 val은 변수가 선언된 후 나중에 바꿀 수 없다.

 

var

variable의 줄임말이다. 이 변수는 읽을 수 있을 뿐만 아니라 수정하는 것도 가능하다. mutable하다고 한다. 

var myFavorite: String = "Chocolate"
myFavorite = "Candy" //val과 다르게 이렇게 해도 에러가 나지 않는다. 변수가 var로 선언되었기 때문이다.

 

*변수를 선언할 때는 자료형을 알맞게 사용해야 한다. 만약 var hello: Int = "Hello" 이렇게 하면 에러가 난다. "Hello"는 String인데 Int라고 했기 때문이다.

**변수를 선언할 때 꼭 자료형을 써 주어야 할 필요는 없다. 어떤 변수의 자료형을 명시하고 싶거나, 그 변수를 처음 선언한다면 자료형을 쓰는 것이 보통이지만, 그렇지 않으면 쓰지 않아도 된다. 자료형을 쓰지 않아도 컴파일시 에러가 발생하지 않는다.

 

 

3. Operators - 연산자

할당 연산자 = (Assignment operator)

변수에 값을 할당할 때 사용한다. 보통 사칙연산자와 함께 사용된다.

myDreamCarIs = "benz"
Food = "Takoyaki" + "Chicken"
Minus = 2021 - 2002
Devide = 2021 / 2002
Mult = 2021 * 2002

 

덧셈 연산자 + (Addition operator)

두 변수를 더할 때 사용한다.

var myDreamCarIs = "benz"
var FirstName = "Mercedes"
var FullName = FirstName + myDreamCarIs
text.setText(FullName) //Mercedesbenz

 

뺄셈 연산자 - (Subtraction operator)

두 변수를 뺄 때 사용한다. 뺄셈 연산자의 왼쪽에 있는 숫자에서 뺄셈 연산자의 오른쪽에 있는 숫자를 뺀다.

var year = 2002
var now = 2021
val sub = "The result is : " + (now - year) + "old"
text.setText(sub) //The result is : 19old

 

나눗셈 연산자 / (Division operator)

두 변수를 나눌 때 사용한다. 뺄셈 연산자와 같은 원리이다.

var year2 = 2022
var now2 = 1011
val result = 2022 / 1011
text.setText(result.toString()) //2 (2022 / 2021의 결과값(result)이 2, 즉 숫자이므로, 이를 화면에 글자로 나타내기 위해서는 result.toString()이라고 해 주어야 한다.

 

곱셈 연산자 * (Multiplication operator)

두 변수를 곱할 때 사용한다.

var num = 2
var num2 = 3
val enter = 2 * 3
text.setText(enter.toString()) //6

 

증가 연산자 ++ (Increment operator)

어떤 변수에 1을 더하는 연산자이다.

var five = 5
five++
text.setText(five.toString()) //6

 

감소 연산자 -- (Decrement operator)

어떤 변수에 1을 뺴는 연산자이다. 

var five = 5
five--
five--
text.setText(five.toString()) //3

 

 

4. Expresesions

Expression이란 값을 리턴하는 무언가를 말한다. 예를 들어, 3 + 3 == 6 이 코드는 True를 반환하므로, ==은 Expression이 되는 것이다.

 

==

두 값이 같은지 비교해보고 같으면 True, 다르면 False를 반환한다.

(1 + 1 == 2) = True
(1 + 1 == 0) = False

 

!

값을 부정한다. 결과값이 True면 False, False면 True를 반환한다. 

(!(3 + 2 == 6)) = True //3+2는 5이므로 원래는 False이지만, 앞에 !가 붙어있으므로 False를 부정해 True가 반환된다.

 

!=

두 값을 비교해 같지 않으면 True, 같으면 False를 반환한다.

(10 != 9) = True 
(1 + 1 != 2) = False

 

>

왼쪽 값이 오른쪽 값보다 크면 True, 그렇지 않으면 False를 반환한다.

(1 > 0) = Ture
(1 > 2) = False

 

<

왼쪽 값이 오른쪽 값보다 작으면 True, 그렇지 않으면 False를 반환한다.

(1 < 2) = True
(1 < 0) = False

 

>=

왼쪽 값이 오른쪽 값보다 크거나 같으면 True, 그렇지 않으면 False를 반환한다.

(1 >= 1) = True
(1 >= 0) = True
(1 >= 3) = False

 

<=

왼쪽 값이 오른쪽 값보다 작거나 같으면 True, 그렇지 않으면 False를 반환한다.

(1 <= 1) = True
(1 <= 3) = True
(1 <= 0) = False

 

&&

and를 의미한다. 둘 중 하나라도 False면 False를 반환한다.

((1 + 1 == 2) && (2 + 2 == 4)) = True //둘 다 True일때만 True이다.
((1 < 2) && (1 > 3)) = False //1이 2보다 작다는것은 True지만 1이 3보다 크다는 것이 False이므로 False를 반환한다.

 

||

or을 의미한다. 둘 중 하나라도 True면 True이다.

((1 > 2) || (2 < 1)) = False //둘 다 False면 False이다.
((1 > 2) || (2 < 3)) = True //1이 2보다 크다는것은 False지만, 2가 3보다 작다는 것은 True이므로 True를 반환한다.