fun helloKotlin(): Unit { // Unit 반환 타입은 생략가능
println("Hello Kotlin-Basic!")
}
fun add(a: Int, b: Int): Int {
return a + b
}
helloKotlin() // Hello Kotlin-Basic!
println(add(4, 5)) // 9
코틀린은 fun키워드를 사용해 함수를 생성한다.
fun 함수명(인자: 타입) : 반환타입 { } 의 구조를 가지고 있다
세미콜론(;)은 붙일 필요가 없다.
2. 문자열 템플릿과 주석
fun printInfo(){
var name : String = "meda"
val lastName = "ndro"
println("닉네임:${name}")
println("풀네임:${name + lastName}")
println("뒤에 공백으로 구분되면 $name 처럼 중괄호 생략 가능")
println("\$ 표시는 \\(백슬래시) 이스케이프 문자 사용")
println("주석은 //으로 가능합니다.")//이렇게
println("여러줄 주석은 /* */으로 가능합니다")
/* 이
렇
게 */
}
문자열 내에서 값을 불러올때는 ${ }를 사용한다.
주석은 한줄 //와 여러 줄 /* */을 사용한다.
3. 조건식, 상수, 변수
3-1. If와 상수 그리고 변수
fun maxBy1(a: Int, b: Int): Int {
if (a > b) {
return a
}else{
return b
}
}
fun maxBy2(a: Int, b: Int) = if (a > b) a else b
// maxBy1과 같은 동작을 한다,
// 자바 삼항연산자 (a > b) ? a : b 와 비슷하다
fun maxByTest(){
val a : Int = 10 // val 은 Value 상수
var b : Int = 9 // var 는 Variable 변수
var c = 7 // 타입 자동 추론 가능
//a = 20 //상수는 수정 불가능
b = 20 //변수는 수정 가능
println("일반적인 방법 ${maxBy1(a,b)}") // 일반적인 방법 20
println("간결한 방법 ${maxBy2(a,b)}") // 간결한 방법 20
}
fun checkNum(score : Int): Unit{ // 모든 함수는 expression 이다 (Unit 반환)
when(score){
0 -> println("$score is 0")
1 -> println("$score is 1")
2,3 -> println("$score is 2 or 3")
}// switch case 문과 비슷한 when 구문, 명령문(statement)
var intToString = when(score){
0 -> "0"
1 -> "1"
2,3 -> "2 or 3"
else -> "not 0 to 3"
}// 변수에 대입할때는 else문이 필수이다, 표현식(expression)
println("$score 문자열 변환 결과 : ${intToString}")
when(score){
in 9..10 -> print("천재") // 9이상 10 이하
in 4 until 9 -> print("괜춘") // 4이상 9미만
else -> println("노력하세요")
}
}
checkNum(2) 입력 시 출력 결과
2 is 2 or 3 // 첫번째 when에서 2,3에 해당하는 값 출력
2 문자열 변환 결과 : 2 or 3 // 두번째 when에서 intToString에 2 or 3 대입하여 출력
노력하세요 // 세번째 when에서 else에 해당하는 값 출력
표현식(expression) : 값을 만들어 반환
명령문(statement) : 값을 만들지 않음
when( )구문은 switch case와 비슷하며 명령문과 표현식으로서 사용이 가능하며 표현식으로 사용될 때는 else문을 사용해 예외처리를 해야 한다.
When 조건의 범위
A .. B는 A ≤ .. ≤ B , 즉, A이상 B 이하를 의미한다
A until B는 A ≤ .. < B 즉, A이상 B미만을 의미한다.
B downTo A는 B ≥ .. ≥ A 즉, B이하 A이상을 의미한다.
기본적으로 1씩 증가 or 감소하며 step N을 붙이면 N만큼 증가 감소한다 in 0 *until* 9은 0, 1, 2, 3, 4, 5, 6, 7, 8을 포함하고 in 0 *until* 9 *step* 3은 0, 3, 6을 포함한다.