본문 바로가기

Android 공부/Java와 다른 Kotlin

[JAVA 다른 KOTLIN ] if-else, switch, when


0. 서론

코틀린에 대한 공부가 필요해서 자바와는 다른 코틀린이라는 주제로 공부내용을 정리할 예정입니다.


1. if-else

1-1. JAVA CODE:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
 
public class StudyClassJava extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_empty);
        Log.d("checkNumber",checkNumber(0));
    }
 
    private String checkNumber(int a) {
        String result = "";
        if (a > 0) {
            result = "양수";
        } else if (a < 0) {
            result = "음수";
        } else{
            result = "0";
        }
        return result;
    }
}
cs


1-2. KOTLIN CODE:


1
2
3
4
5
6
7
8
9
10
11
12
13
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.util.Log
 
class StudyClassKotlin : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_empty)
        Log.d("checkNumber",checkNumber(1))
    }
 
    fun checkNumber(a: Int):String = if (a > 0) { "양수" } else if (a < 0) { "음수" } else { "0" }
}
cs


1-3. 해석:


코틀린에서는 if문의 결과값을 함수에 대입하는 구조를 만들 수 있다.

자바에서는 그럴 수 없고 일일히 return을 해줘야하기 떄문에 코드가 조금 더 길어진다.



2. switch


2-1. JAVA CODE:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class StudyClassJava extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_empty);
        Log.d("checkNumber", checkNumberSwitch(-1));
    }
 
    private String checkNumberSwitch(int a) {
        String result = "";
        try {
            switch (a*Math.abs(a)) {
                case 1:
                    result = "양수";
                    break;
                case -1:
                    result = "음수";
                    break;
            }
        }catch(ArithmeticException arithm){
            Log.d("arithm",arithm.getMessage());
            result = "0";
        }
 
        return result;
    }
}
cs

2-2. KOTLIN CODE:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.util.Log
 
class StudyClassKotlin : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_empty)
        Log.d("checkNumber", checkNumber(1))
    }
 
    fun checkNumberWhen(a: Int): String = when {
        a > 0 -> "양수"
        a < 0 -> "음수"
        else -> "0"
    }
}
cs


2-3. 해석:


코틀린에서는 if, switch등 각종 값들을 표현식으로 할 수 있다는게 엄청나게 큰 매리트로 느껴진다.





개인적으로 개발하고 있는 어플리케이션 입니다.


2018/10/21 - [나의 일기] - (리뷰) 시간표 어플리케이션 - 담다

2018/07/15 - [나의 일기] - #담아두다 #일상 #다이어리 #어플리케이션