코딩공부

코틀린 기본 자료형과 연산, 조건문과 반복문, 함수

늠재 2025. 4. 9. 11:26

코틀린은 기본 자료형이 자바와 유사하다.

그러나 자바와는 따로 구분을 짓기 위해 앞글자는 모두 대문자로 입력하여 대소문자를 구분한다.

정수형, 실수형, 문자형, 불린형, 그리고 널러블 타입이라는 것이 있다.

 

정수형

정수를 나타낸다. 컴퓨터의 자원은 한정적이고 우리는 자원을 효율적으로 사용해야 하기에,

사용하게 될 숫자의 크기에 따라 정수형에도 네 가지 자료형이 있다.

1. Byte

2진수를 표현하는 8비트 정수로,  -128~127까지 허용된다.

2. Short

16비트 정수로, -32768 ~ 32767까지 허용된다.

3. Int

32비트 정수로, -2,147,483,648 (-2의 31제곱) ~  2,147,483,647 (2의 31제곱 -1)까지 허용된다.

4.Long

64비트 정수로, 가장 긴 숫자를 제공하는데,

-9,223,372,036,854,775,808(-2의 63제곱) ~ 9,223,372,036,854,775,801 (2의 31제곱 -1)까지 지원한다.

Long형은 선언한 값 뒤에 L을 붙여야한다.

 

실수형

실수를 나타낸다. 실수형은 두 가지가 있다.

1. Float

32비트 부동소수점 실수 지원. 변수를 선언할 때 Float형은 선언한 숫자 뒤에 f를 붙여야한다.

 

2. Double

64비트 부동소수점 실수 지원

*부동소수점( 실수를 컴퓨터상에서 근사하여 표현할 때 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 적는 것)

 

* 변수 선언 시 val과 var의 차이 : val은 변수 선언 후 값이 고정되어 변하지 않고, var은 변수를 선언한 이후에 다른 값으로 변경이 가능하다.

 

문자형

문자형은 한 글자만 나타내는 char형과 문자열을 나타내는 string형이 있다.

String 형에서는 삼중 따옴표(""")를 사용할 수 있는데, 이를 사용하게 되면 이스케이프 시퀀스를 입력하지 않아도

키보드로 입력한 줄 바꿈이나 들여쓰기 등이 그대로 실행된다.

불린형

true, false같은 참 거짓에 대한 자료형이다.

 

1. 널러블 타입 (Nullable Type)

널러블 타입은 값이 없음을 허용하는 타입

 

String은 null 값을 집어넣으면 오류가 발생하지만,

뒤에 ?를 붙여주면 허용된다.

 

?를 선언하는 값 뒤에 붙여서 사용

기타 널러블 관련 연산자

?. (safe call) : null이 아니면 실행

?:(Elvis Operator) : null일 때 기본값 설정

?! (Non-null Assertion):  null이 아님을 단언함.

 

연산자

산술 연산자

더하기 연산자 : +

빼기 연산자: -

곱하기 연산자: *

나누기 연산자: /

나머지를 구하는 연산자: %

 

비교 연산자

같음을 표현 : ==

다름을 표현 : !=

비교하는 대상보다 크다는 것을 표현 : >

비교하는 대상보다 작다는 것을 표현 : <

비교하는 대상보다 크거나 같다 : >=

비교하는 대상보다 작거나 같다 : <=

 

논리 연산자

and( 둘 다 참일때만 true로 진행) : &&

or ( 둘 중에 하나만 참이어도 true로 진행) : ||

not ( 불린 연산자의 참과 거짓 둘 중 조건을 반대로 바꿈) : !

 

조건문

if ( 조건문 ) {

   조건문을 만족한다면 중괄호 안의 코드를 수행

}

else 

  ( 만족하지 않는다면)  중괄호 안의 코드를 수행

}

 

그리고 C나 JAVA와는 다르게 코틀린에서는 when 문이라는 개념으로 등장한다.

when (조건문) {

     중괄호 안의 내용을 수행

     else -> 조건문을 만족하지 않는다면 이 내용을 수행

}

* when 문에서는 else 구문이 안쪽으로 들어와서 내용을 수행한다.

 

반복문

    for 문과 while 문이 있는데, 이 구문들은 바로 예시를 들어보겠다.

for 문

for (i in 1..5) { println(i) }

출력 : 1 2 3 4 5

*c나 java와 다르게 변수 i에 대한 타입 추론 기능이 있어 자료형을 선언해주지 않아도 코드가 정상적으로 작동한다.

 

do-while 문

var i = 1 
do {
    println(i)
    i++
} while (i <= 5)

do -while 문에서는 조건문 작성을 따로 하지 않는 방식이므로 변수 i를 밖에서 따로 선언해주어야 한다.

 

함수 정의와 호출

함수는 입력을 받아서 내부에서 작업을 처리한 뒤에 출력시켜서 내보내는 프로그램 조각이다.

자판기로 예시를 들면

매개변수 (parameter) : 자판기에 음료수를 먹기 위해 집어넣는 동전

함수 본문(body) : 자판기에 동전을 넣고 음료수가 나오는 자판기의 전체적인 작동기능

반환값(return) : 그 결과로 인해 나오는 음료수

 

 

fun 함수이름(매개변수: 타입) : 반환타입 {

        return 결과값

}

 

EX)

fun meet(name: String): String {
    return "안녕하세요, $name!" // 
}
val sayHello = greet("염은재")
println(sayHello)

 

설명

1. meet이라는 이름의 함수 선언

2. name이라는 String타입 매개변수 선언

3. 결과로 String 반환

message 라는 변수를 이용해 "염은재" 라는 문자열이 출력되도록 선언

4. println으로 sayHello 변수 출력하도록 함.