변수 (var)
# 변수(variable)이란?
- 값을 임시로 메모리(저장공간)에 저장하고 그 저장공간에 이름을 부여한것 [값을 담아주는 그릇이라고 생각하면 쉬움]
- 이름과 값으로 구성되며, 변수에 이름을 부여하고 값을 입력하는 행위
- 변수를 사용하면 소스코드에서 해당값을 사용하고자 할때, 앞에서 붙였던 이름으로 사용할수있음
# 변수 선언방식
1) 변수선언과 동시에 값 넣기
- 입력되는 값으로 변수 타입 추론 가능
- 값이 입력되는 순간 해당 값의 형태(String,Int,Boolan 등)으로 변수의 타입이 결정
// 변수명 myName에 문자열 "홍길동"을 입력
var myName = "홍길동"
2) 값으로 초기화하지 않고 선언만 하여 사용하기
- 선언만 할 경우, 반드시 변수명 옆에 콜론(:) 구분자를 붙여서 타입(자료형)을 지정해야함
var myAge : Int // 변수명 myAge를 Int 타입으로 선언
myAge = 27 // 숫자 '27'을 입력
-> 변수는 최초 선언시에 타입이 결정됨
-> 변수는 한번 타입을 결정하면 동일한 타입의 값만 담을수있음
[ Int(정수)타입의 변수에 문자열을 입력한다면 컴파일 에러가 발생함]
# 데이터 타입
구분 | 데이터타입 | 설명 |
숫자형 | Double | 64비트 정수 |
Float |
32비트 정수
|
|
Long | 64비트 정수 | |
Int | 32비트 정수 | |
Short | 16비트 정수 | |
Byte | 8비트 정수 | |
문자형 | Char | 1 개의 문자 |
String |
여러 개의 문자
|
|
불리언형 | Boolean | true, false |
# 기본 타입
- 변수에 저장되는 값의 크기가 미리 정해져있는 타입
- Int는 2,147,483,647까지, Byte는 127까지 저장 / String의 경우는 쌍따옴표(" ") 사이에 몇 글자가 들어가도 상관없기 때문에 값의 크기를 특정할 수 없음
# Double
- 소수점이 있는 값을 저장할때 사용
var doubleValue: Double
doubleValue = 3.141592
# Float
- Double과 동일한 용도이지만 더 작은 범위의 숫자를 저장할 때 사용
- Double과 Float을 구분하기 위해 Float의 경우 숫자 끝에 'F'를 붙여줌
var floatValue: Float
floatValue = 3.141592F
# Int
- 소숫점이 없는 정숫값 저장할때 사용
var intValue: Int
intValue = 2147483647
- 가독성을 높이기 위해 언더바(_)로 자릿수 구분 가능
var intValue: Int
intValue = 2_147_483_647
# Long
- Int 보다 큰 범위의 정수 저장할때 사용
- Int와 구분하기 위해서 숫자의 끝에 'L'을 붙여줌
- Long 타입의 경우에는 설정한 글꼴에 따라 숫자 1과 구분이 어려울 수 있기 때문에 대문자를 사용
var longValue: Long
longValue = 2147483647L
# 정수형 변수에 실수형 값을 입력할 수 있을까?
- 같은 숫자라도 타입이 다르면 입력할 수 없음
- 예를 들어, 정수형(Int) 숫자 1과 실수형(Double) 숫자 1.0은 서로 다른 타입으로 인식하기 때문에 정수형으로 선언된 변수에 실수형 값을 입력할 수 없음
- 꼭 필요한 경우에는 데이터 타입(자료형)을 변환하는 과정을 거쳐서 입력할 수 있음
# Short , Byte
- 정숫값을 저장할 때 사용하는데 입력할 수 있는 값으 크기가 Int보다 작음
var shortValue: Short = 32_767
var byteValue: Byte = 127
# 타입을 지정하지 않은 숫자는 어떻게 저장될까?
- 타입을 지정하지 않은 일반 숫자값은 모두 Int타입으로 인식되어 의도치 못한 결과를 가져올수있음
var byteValue: Byte = 127 // 127이 Byte 타입으로 저장됩니다.
var byteValue2 = 127 // 127이 Int 타입으로 저장됩니다.
var floatValue: Float = 3.14F // 3.14가 Float 타입으로 저장됩니다.
var doubleValue = 3.14 // 끝에 F를 붙이지 않으면 Double로 저장됩니다.
# Char
- 하나의 글자만 외따옴표('')로 감싸서 저장할 수 있음
- 타입을 특정하지 않아도 외따옴표 안에 하나의 글자만 지정하기 때문에 Char로 저장
var charValue = 'A'
# String
- 여러개의 문자 지정
- 기본 타입에는 포함되지 않지만 거의 모든 컴퓨터 언어에서 가장 많이 사용되는 타입
var stringValue: String = "ABCDEF"
# Boolean
- true, false 둘 중에 1개의 값을 저장할 수 있음
- 주로 조건문에서 의사결정을 하기 위한 용도로 많이 사용
var boolValue = true
# 문자열
- 코틀린에서는 더하기(+) 연산으로 2개의 문자를 하나로 합칠수있음
- 문자열을 쉽게 다룰수있는 문지열 템플릿도 제공
-> 문자열 내부에 달러($)기호를 넣으면 해당 영역이 문자가 아닌 코드라는 것을 알려줌
var name="홍길동"
// 출력: 제 이름은 홍길동 입니다.
Log.d("BasicSyntax", "제 이름은 $name 입니다.")
- 주의할점
-> $변수 다음에 이어지는 문자가 있다면 공백으로 구분해야함
// 이어지는 문자열과의 사이에 공백이 없으면 문자열로 인식합니다.
"제 이름은 $name(공백) 입니다."
# 읽기 전용 변수 Val
- 위의 var과는 다르게 한 번 입력된 값은 변경할 수 없음
- 변하지 않는 값을 미리 입력해둘때 사용
- 상수라고 부르기도 하지만 상수와는 의미가 조금 다름
- val 선언방법
- 선언방법은 변수와 동일하며, 이름 앞에 val을 붙이면 읽기 전용 변수가 됨
val 변수명(이름) = 값
- 변하지 않는 값을 미리 지정해두고 필요에 따라 다른값과 조합해서 사용 가능
// 미리 지정
val roadName = "국제금융로"
// 필요할 때 조합해서 사용합니다.
var address = roadName + "8길"
- val로 정의된 변수는 값을 변경할 수 없으므로 아래와같이 입력하면 에러 발생
val language = "kotlin"
language = "java" // ERROR, val은 값을 변경할 수 없습니다.
# 상수 Const
- 상수는 주로 기준이 되는 변하지 않는 값을 입력해둘때 사용
- 읽기 전용 변수인 val 앞에 const 키워드를 붙여서 만듬
const val PI = 3.141592
-> val과 같이 읽기 전용인 것은 동일하지만,
컴파일 시에 값이 결정되기 때문에 Int, Long과 같은 기본형과 문자열인 String만 입력할 수 있음
# 코딩 컨벤션
- 대부분의 회사에서는 최초 개발자와 유지보수 담당자가 다르기에 각 프로젝트별로 코드를 작성하는 규칙을 만드는데, 이를 코딩 컨벤션이라 함
-> 클래스명
- 코드를 알아보기 쉽게 하나의 파일에 모아놓은 것
- 클래스 네이밍 규칙은 카멜 케이스 규칙 사용 [첫글자는 대문자, 나머지 글자는 소문자]
- 클래스명은 일반적으로 파일명과 동일(항상 그런것은 아님)
- 클래스는 변수와 함수는 포함
class MainActivity{
val name = "kotlin"
var age = 17
fun getFullName(): String{
...
}
}
-> 함수명과 변수명
- 카멜 케이스 규칙 사용
// 첫 글자인 o는 소문자, 새로운 단어(Create, Activity)의 첫 글자(C, A)는 대문자
fun onCreateActivity()
// 첫 글자인 i는 소문자, 새로운 단어(Value)의 첫 글자(V)는 대문자
var intValue: Int
-> 상수명
- 상수명은 모두 대문자로 작성
const val HELLO: String = "안녕"
- 상수명이 2개의 단어로 이루어져 있다면 다음 예시 코드의 상수명처럼 단어 사이를 언더바(_)로 구분하는 스네이크 케이스(Snake Case)를 사용할 수 있음
const val HOW_ARE_YOU: String = "어떻게 지내?"
# 개인 선호도에 따라 카멜 케이스, 스네이크 케이스 중 한 가지를 선택할 수 있지만, 하나의 프로젝트를 스네이크 케이스로 시작했다면 모든 코드를 스네이크 케이스로 작성하는 일관성이 있어야함!
-> 들여쓰기
- 새로운 코드 블록이 시작되면 스페이스바 또는 Tab키로 동일한 간격만큼 들여쓰기함
- 코딩 규칙 중 가장 중요한 규칙!!
# 미니 퀴즈
1. 코드 작성 규칙에서 가장 중요한 것은 무엇일까요?
-> 들여쓰기
2. 16비트의 정숫값을 저장할 수 있는 타입은 무엇일까요?
-> Short
3. 2개의 문자열을 합칠 수 있는 방법은 무엇일까요?
-> 더하기(+) 연산으로 2개의 문자를 하나로 합칠수있음
4. 한 번 입력한 값을 바꿀 수 없는 변수를 무엇이라고 할까요?
-> 읽기 전용 변수 (Val)
'개발 노트 > Kotlin' 카테고리의 다른 글
[kotlin]배열과 컬렉션 (0) | 2024.01.16 |
---|---|
[kotlin]조건문 (0) | 2024.01.16 |
Log, Logcat (0) | 2024.01.16 |
버튼 눌러서 글자 바꾸기 예제 (0) | 2024.01.15 |
코틀린에 관해 (0) | 2024.01.15 |