Kotlin에서 자료형은 정수, 실수, 논리, 문자, 문자열 등이 있다
1. 정수 자료형
Kotlin에서 정수 자료형을 부호있는 자료형과 부호없는 자료형으로 구분한다
부호있는 자료형에는 Byte, Short, Int, Long 등이 있고 부호없는 자료형에는 UByte, UShort, UInt, Ulong 등이 있다
부호있는 정수형
타입 | 크기 | 최솟값 | 최대값 | 기본 값 |
Byte | 1Byte(8bit) | -128 | 127 | 0 |
Short | 2Byte(16bit) | -32768 | 32767 | 0 |
Int | 4Byte(32bit) | -2,147,483,648 (-2 31 ) | 2,147,483,647(2 31 - 1) | 0 |
Long | 8Byte(64bit) | -9,223,372,036,854,775,808 (-2 63 ) | 9,223,372,036,854,775,807 (2 63 - 1) | 0L |
정수 자료형의 기본형은 Int이므로 Byte나 Short는 타입을 지정해줘야한다.
타입을 지정해주지 않아도 타입 추론이 가능하다.
부호없는 정수형
타입 | 크기 | 최솟값 | 최대값 | 기본값 |
UByte | 1Byte(8bit) | 0 | 255 | 0u |
UShort | 2Byte(16bit) | 0 | 65,535 | 0u |
UInt | 4Byte(32bit) | 0 | 4,294,967,295(2 32 - 1) | 0u |
ULong | 8Byte(64bit) | 0 | 18,446,744,073,709,551,615 (2 64 - 1) | 0uL |
부호없는 정수형을 사용하기 위해서는 U/u를 반드시 명시적으로 선언해야하는데 ULong은 접미사 UL/uL을 붙여줘야한다.
UInt는 0 ~ 4,294,967,295(2 32 - 1) 범위를 표현할 수 있고 기본형이 UInt이기 때문에 타입 추론이 가능하다.
ULong은 UInt의 위 범위를 표현할 수 있고 접미사 uL이 있기 때문에 ULong 타입이라는 것을 예측할 수 있다.
2. 실수 자료형
Kotlin에서 실수 자료형은 소수점이 있으면 그 자료형을 실수 자료형이라고 부른다. (소수점이 있으면 다 실수)
실수 자료형에는 Float, Double 유형으로 구분한다.
타입 | 크기 | 기본 값 |
Float | 4Byte(32bit) | 0.0f |
Double | 8Byte(64bit) | 0.0 |
실수 자료형의 기본형은 Double이다.
Float 타입은 뒤에 접미사 F/f를 사용한다.
3. 논리 자료형
타입 | 값 |
Boolean | true/false |
논리 자료형의 Boolean은 두 가지의 값을 표현할 수 있다. 참은 true, 거짓은 false
참과 거짓을 판별할 때 많이 사용된다.
논리 자료형의 기본 값은 false이다.
4. 문자 자료형
문자 자료형은 문자와 문자열로 구분되고 문자는 Char, 문자열은 String이라고 한다.
타입 | 설명 | 예 |
Char | 한 글자의 문자를 담는 자료형 | '반', '갑', '습', '니', '다' |
String | 문자열을 담는 자료형 | '반갑습니다' |
Char은 작은 따옴표('')로 묶고 String은 큰 따옴표("")로 묶는다.
큰 따옴표("") 안에 여러 문자열을 담을 수 있다.
만약 Char 타입에 긴 문자열이 들어갔을 경우 에러가 난다.
Number
Number는 숫자를 저장할 수 있는 특수한 자료형이다. -> 숫자 관련 자료형만 할당 가능
숫자 관련 자료형말고 다른 자료형을 할당하면 에러나니 주의하자.
Any
Any 타입은 코틀린의 모든 자료형의 최상위 타입이며 모든 자료형을 대신한다.
결과가 잘 출력되는 것을 볼 수 있다.
연산자
Kotlin에서 연산자는 산술, 대입, 복합 대입, 증감, 논리, 비교 연산자 등이 있다.
1. 산술 연산자
산술 연산자는 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산을 수행하는 연산자이다.
연산자 | 설명 | 예 |
+ | 덧셈 | x + y |
- | 뺄셈 | x - y |
* | 곱셈 | x * y |
/ | 나눗셈 | x / y |
% | 나머지 | x % y |
나머지 연산은 어떤 값을 나눈 나머지를 의미한다.
산술 연산자에는 Kotlin이 기본적으로 제공하는 함수가 있다.
함수 | 설명 | 예 |
plus() | 덧셈 | x.plus(y) |
minus() | 뺄셈 | x.minus(y) |
times() | 곱셈 | x.times(y) |
div() | 나눗셈 | x.div(y) |
rem() | 나머지 | x.rem(y) |
2. 대입 연산자
대입 연산자는 값을 대입(할당)할 때 사용된다.
연산자 | 설명 | 예 |
= | 특정 변수에 값을 저장할 때 사용하는 연산자(값 할당) | x = 10 |
위 코드를 보면 x에 19를 할당한 다음 다시 x에 21을 할당했다.
3. 복합 대입 연산자
복합 대입 연산자는 산술 연산자와 대입 연산자를 결합해 왼쪽 변수에 할당하는 연산자이다.
연산자 | 설명 | 예 |
+= | x = x + y, x에 y를 더한 결과를 x에 할당 | x += y -> x = x + y |
-= | x = x - y, x에 y를 뺀 결과를 x에 할당 | x -= y -> x = x - y |
*= | x = x * y, x에 y를 곱한 결과를 x에 할당 | x *= y -> x = x * y |
/= | x = x / y, x에 y를 나눈 결과를 x에 할당 | x /= y -> x = x / y |
%= | x = x % y, x에 y를 나머지 연산 결과를 x에 할당 | x %= y -> x = x % y |
4. 증감 연산자
증감 연산자는 1씩 증가하거나 감소하는 연산자이다.
연산자 | 설명 | 예 |
++ | 1씩 증가 | x++, ++x |
-- | 1씩 감소 | x--, --x |
여기서 해당 연산자의 순서가 중요하다.
++x, --x 이런 식으로 연산자가 앞에 있으면 1씩 증가하거나 감소한 다음 반환하겠다는 의미고, 반대로 x++, x-- 이런 식으로 연산자가 뒤에 있으면 반환 먼저하고 그 다음 증가하거나 감소하겠다는 의미이다. 위 코드를 보면 이해가 쉽다.
6. 비교 연산자
비교 연산자는 두개의 값/객체를 비교하는 연산자이다. Boolean 타입으로 반환하고 조건문에서 많이 사용된다.
연산자 | 설명 | 예 |
== | 같다 | x == y |
!= | 다르다 | x != y |
> | 왼쪽의 값이 더 크다 | x > y |
< | 왼쪽의 값이 더 작다 | x < y |
>= | 왼쪽의 값이 크거나 같다 | x >= y |
<= | 왼쪽의 값이 작거나 같다 | x <= y |
=== | 객체가 같다 | x === y |
!== | 객체가 다르다 | x !== y |
===, !== 연산자는 객체를 비교하고, 그 와 연산자들은 값을 비교한다.
x와 y는 String 타입이기 떄문에 === 연산자를 사용해서 객체 비교하면 true가 나온다.
5. 논리 연산자
두개 이상의 조건을 판단할 때 사용하는 연산자로 Boolean 타입으로 반환한다.
연산자 | 설명 | 예 |
&& | And | x && y |
|| | Or | x || y |
! | Not | !x |
&&은 두 조건 모두 다 참(true)이어야지만 ture를 반환하고, ||은 두 조건 중 하나만 참(true)인 경우 true를 반환한다.
!는 부정의 의미로 참(true)인 값을 false로 만들어버린다. 즉, 참이면 거짓으로 거짓이면 참으로 바꿔준다.
잘못된 부분이나 부족한 부분이 있을 수 있습니다. 댓글로 남겨주시면 감사하겠습니다.
'Kotlin' 카테고리의 다른 글
[Kotlin] 제어문(2) - 반복문(while, for) (1) | 2024.11.15 |
---|---|
[Kotlin] 배열(Array) (0) | 2024.11.14 |
[Kotlin] 제어문(1) - 조건문(when, if-else) (0) | 2024.11.14 |
[Kotlin] 형변환과 Null 안전성(Null Safety) (0) | 2024.11.14 |
[Kotlin] 변수와 상수 (7) | 2024.11.11 |