[Kotlin] 코틀린 기본 문법, 제어문
코틀린 제어문 ( if / when / for / while / do~while )
제어문 개념
- 코틀린의 제어문은 크게(if / when / for / while) 4가지로 구분
- when문을 제외하면 거의 유사한 형태
- 자바와 코틀린의 제어문은 개념이 다른 형태 (문 "Statement" / 식 "Expression")
: 자바는 제어문의 개념이 "문"의 형태 / Kotlin은 반복문을 제외한 나머지는 식 "Expression"의 형태
1) 문 "Statement" - 값을 반환하지 않는 형태 (retrun x)
// JAVA
// if문 : 기본적으로 문의 형태로 식처럼 사용하려면 retrun을 직접 입력해줘야 함
if(a > b) {
return true;
} else {
return false;
}
// switch문 : 기본적으로 문의 형태로 식처럼 사용하려면 retrun을 직접 입력해야 함
switch(num){
case 1:
return "숫자 1";
case 2:
return "숫자 2";
case 3:
return "숫자 3";
else :
return "그 이상 숫자";
}
2) 식 "Expression" - 값을 반환하는 형태 (return)
// Kotlin
// if문 : 식의 형태
// Java의 삼항연산자와 비슷 "a > b ? true : false"
if(a > b) true else false
// when문 : Java의 switch문과 비슷
when(num){
1 -> "숫자 1"
2.3 -> "숫자 2 or 3"
in 4..8 -> "숫자 4~8 사이"
!in 9..12 -> "숫자 9~12사이 아님"
else -> "그 외 숫자"
}
when
- 자바의 switch와 유사
switch - 문(Statement)의 형태
when - 식(Expression)의 형태
var num = 10
when(num){
1 -> "값 1"
2,3,4 -> "값 2,3,4 중 하나"
in 5..10 -> "값 5~10 중 하나"
else -> "그 이외의 값"
}
// 함수의 반환값으로 사용 가능
var number = 100
fun isEven(num:Int) = when (num%2) {
0 -> "짝"
else -> "홀"
}
// 짝 출력
println(isEven(number))
for
- 배열이나 컬렉션을 순회하는 문법
- Java의 foreach문과 비슷 - for( <Element> : <Elements> )
: 기본 사용방법
val numbers = arrayOf(1,2,3,4,5)
// num = 자료형 변수 (임의의 이름 사용), numbers = 대상 배열
for (num in numbers){
println(num) // 1; 2; 3; 4; 5; 출력
}
// Java의 "for (int num : numbers)" 와 유사
: 범위, 증가/증감 사용방법
// 1~3까지 출력
for ( i in 1..3) {
println(i) // 1; 2; 3; 출력
}
// 0~15까지 3씩 증가하며 출력
for ( i in 0..15 step 3){
println(i) // 0; 3; 6; 9; 12; 15;
}
// 15~0까지 3씩 감소하며 출력
for ( i in 15..0 step 3){
println(i) // 15; 12; 9; 6; 3; 0;
}
".." 키워드는 우항까지 포함
-> "0..15는 -> int i=0; i<=15; i++의 의미"
일반적으로 Java에서는 우항을 포함하지 않고 사용 "int i=0; i<15; i++"
-> ".." 키워드 대신, until 키워드로 사용 (우항 포함 x)
// "0..15는 -> i=0; i<=15; i++"의 의미
for (i in 0..15){
}
// "0 until 15는 -> i=0; i<15; i++"의 의미
for (i in 0 until 15){
}
while / do~while 문은 자바와 동일해서 생략.