조건문 if~else 와 표현식
fun main() {
var data = 10
if(data > 0) {
println("data > 0")
} else {
println("data <= 0")
}
}
[실행 결과]
data > 0
- 명시한 조건에 만족하면 if 문 실행 그렇지 않으면 else 부분 실행
// 표현식으로 사용 예시
fun some() {
var data = 10
val result = if (data > 0) {
println("data > 0")
true // 참일 때 반환값
} else {
println("data <= 0")
false // 거짓일 때 반환값
}
println(result)
}
[실행 결과]
data > 0
true
- 표현식이란 결괏값을 반환하는 계산식
- if~else 문을 표현식으로 사용하려면 else 문을 생략할 수 없음
자바와 차이점
Boolean ifState(int data) {
if(data > 0) {
System.out.println("data > 0");
return true;
} else {
System.out.println("data <= 0");
return false;
}
}
void main() {
int data = 10;
Boolean result = ifState(data);
System.out.println(result);
}
- if~else 문은 자바와 큰 차이가 없으나 표현식이라는 개념이 없음
- 위 코틀린 코드를 자바 코드로 변형 한다면 다음과 같이 작성할 수 있다.
조건문 when
fun whenExample() {
val data = 10
when(data) {
10 -> println("data is 10")
20 -> println("data is 20")
else -> {
println("data is not valid data")
}
}
}
[실행 결과]
data is 10
- when 키워드 다음 소괄호 () 안에 넣은 데이터가 조건이 되고 값에 따라 구문이 실행됨
- when 문의 조건으로는 정수가 아닌 다른 타입의 데이터를 지정할 수도 있다.
// 문자열 타입을 조건으로 사용
fun whenExample2() {
val data:Any = "Hello"
when(data) {
is String -> println("data is String")
20 -> println("data is 20")
in 1..10 -> println("data is 1..10")
else -> println("data is not valid data")
}
}
[실행 결과]
dats is hello
- 여러 개의 타입인지 확인하려면 data 타입을 Any로 선언해야함
// when문을 표현식으로 사용
fun whenExample3() {
val data:Int = 10
val result = when(data) {
is String -> println("data is String") // data가 문자열 타입이면
20, 30 -> println("data is 20 or 30") // data가 20 또는 30이면
in 1..10 -> println("data is 1..10") // data가 1~10의 값이면
else -> println("data is not valid")
}
println(result)
}
[실행 결과]
data is 1...10
- when 문을 표현식으로 사용할 때는 else 문을 생략할 수 없다.
// 조건만 명시한 예
fun whenExample4 {
var data = 10
when { // 데이터를 명시하지 않음
data <= 0 -> println("data is <= 0")
data > 100 -> println("data is > 100")
else -> println("data is valid")
}
}
[실행 결과]
dats is valid
자바와 차이점
void switchCaseState2() {
int data = 10;
switch (data) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("data in 1...5");
break;
case 10:
System.out.println("data is 10");
break;
case 100:
System.out.println("data is 100");
break;
default:
System.out.println("data is not 1...5 or 10 or 100");
}
}
- 코틀린의 when 문은 자바의 switch~case 문과 유사하다.
- 그러나 자바의 switch 조건문에 들어갈 수 있는 입력 변수의 타입은 byte, short, char, int만 가능하다
- 연산자 in 은 case 1 ~ case 5 까지로 구현할 수 있다.
- when 문의 else 조건식은 switch~case의 default 조건식과 유사하다.
반복문 for와 while
fun forExample() {
var sum: Int = 0
for(i in 1..10) {
sum += i
}
println(sum)
}
[실행 결과]
55
- 코틀린에서 반복문은 for, while을 제공한다.
- for문은 제어 변숫값을 증감하면서 특정 조건이 참일 때까지 구문을 반복해서 실행
- for문의 조건에는 주로 범위 연산자인 in 을 사용한다.
fun forExample2() {
for(i in 1..10) { // => java: i=1; i<=10; i++
// 1부터 10까지 1씩 증가
}
for(i in 1 until 10) { // => java: i=1; i<10; i++
// 1부터 9까지 1씩 증가
}
for(i in 2..10 step 2) { // => java: i=2; i<=10; i+=2
// 2부터 10까지 2씩 증가
}
for(i in 10 downTo 1) { // => java: i=10; i>=1; i--
// 10부터 1까지 1씩 감소
}
}
// 반복 조건에 컬렉션 타입 활용
fun forExample3() {
var data = arrayOf<Int>(10, 20, 30)
for (i in data.indices) { // indices는 컬렉션 타입의 인덱스값
print(data[i])
if(i !== data.size -1) print(",")
}
}
[실행 결과]
10,20,30
- indices는 컬렉션 타입의 인덱스값을 의미하므로 for문을 반복하면서 0, 1, 2 값을 i에 대입
// 인덱스와 데이터를 가져오는 withIndex() 함수
fun forExample4() {
var data = arrayOf<Int>(10, 20, 30)
for ((index, value) in data.withIndex()) {
print(value)
if(index !== data.size -1) print(",")
}
}
[실행 결과]
10,20,30
- 인덱스와 실제 데이터를 함께 가져옴
fun whileExample() {
var x = 0
var sum1 = 0
while(x < 10) {
sum1 += ++x
}
println(sum1)
}
[실행 결과]
55
- while 문은 조건이 참이면 중괄호로 지정한 영역을 반복해서 실행한다.
자바와 차이점
void forExample() {
int sum = 0;
for(int i=0; i<10; i++) {
sum += i;
}
System.out.println(sum);
}
void whileExample() {
int i = 0;
var sum = 0;
while (i<10) {
sum += ++i;
}
System.out.println(sum);
}
- 코틀린과 큰 차이는 없다.
'언어 > Kotlin' 카테고리의 다른 글
Java와 비교하는 Kotlin - 람다 함수와 고차 함수 (0) | 2022.11.05 |
---|---|
Java와 비교하는 Kotlin - 코틀린의 클래스 종류 (0) | 2022.11.05 |
Java와 비교하는 Kotlin - 클래스를 재사용하는 상속 (0) | 2022.11.05 |
Java와 비교하는 Kotiln - 클래스와 생성자 (0) | 2022.11.05 |
Java와 비교하는 Kotlin - 변수와 함수 (0) | 2022.11.05 |
댓글