일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
- golang
- 자바스크립트
- Kotlin
- Array
- 패널 교체
- 파이썬
- 싱글 스레드
- var
- 안드로이드
- Overloading
- 코틀린
- Android
- node.js
- adapter
- as?
- javascript
- 오버로딩
- 배열
- ListView
- Java
- HP
- 노트북 추천
- go
- 자바
- Python
- 노트북
- js
- 연산자
- 함수
- 리스트 뷰
- Today
- Total
Bbaktaeho
코틀린(Kotlin) 10. if와 when 본문
코틀린에서는 조건문으로 if와 when을 사용한다. 코틀린에서 if와 when은 명령문이 아닌 표현식으로 간주한다. 다양한 상황에 맞게 간결한 코드를 작성할 수 있도록 해준다.
이렇게 이해해보자.
if)
만약 (이게 true 라면) {이걸 실행해}
-----------------------------------------
if (a==10) {println("a는 10이다")}
if-else)
만약 (이게 true 라면) {이걸 실행해}
true가 아니라면 {이걸 실행해}
-----------------------------------------
if (a==10) {println("a는 10이다")}
else {println("a는 10이 아니다")}
if-else if-else)
만약 (이게 true 라면) {이걸 실행해}
true가 아니고 만약(이게 true 라면) {이걸 실행해} //여러 개 가능
true가 아니라면 {이걸 실행해}
----------------------------------------- (위에서 하나씩 검사하다가 맞는 것이 나오면 if 표현식을 빠져나온다)
if (a==10) {println("a는 10이다")}
else if (a == 2) {println("a는 2이다.")}
else {println("a는 10도 아니고 2도 아니다")}
모두 예제로 확인해보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | fun main(args: Array<String>){ val a = 1 if (a == 10) println("a는 10이다") //코드가 하나라면 {} 생략가능 else println("a는 10이 아니다") if (a < 1) println("a는 1보다 작다") else if (a == 2) println("a는 2다") else if (a > 2) println("a는 2보다 크다") else println("a는 1이다") } | cs |
1 2 | a는 10이 아니다 a는 2다 | cs |
코틀린에서 if를 표현식으로 간주하므로 대입문처럼 사용 가능하다.
1 2 | var msg = if(a == 10) "a는 10이다" else "a는 10이 아니다" println(msg) | cs |
더 간결하게 하자면
1 | println( if(a == 10) "a는 10이다" else "a는 10이 아니다" ) | cs |
when)
자바를 배우신 분들이라면 switch문을 배웠을 것이다. 코틀린에서 when은 자바의 switch와 비슷하지만 더 간결하고 기능도 다양하다.
when도 if처럼 표현식으로 간주된다.
말로 설명하기 힘들어서 바로 예제 코드로 넘어가겠다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import java.util.* fun main(args: Array<String>){ val s = Scanner(System.`in`) val num = s.nextInt() when (num){ 1 -> println("1을 입력했네요") 2 -> println("2을 입력했네요") 3 -> println("3을 입력했네요") 4 -> println("4을 입력했네요") 5, 6 -> println("5 또는 6을 입력했네요") in 7..10 -> println("7과 10 사이에 숫자를 입력했네요") else -> println("1,2,3,4,5,6을 제외한 숫자를 입력했네요") } } | cs |
1 2 3 4 5 6 7 8 | 2 //입력 2을 입력했네요 5 //입력 5 또는 6을 입력했네요 7 //입력 7과 10 사이에 숫자를 입력했네요 | cs |
switch와 비교했을 때 더 간결하고 다양한 기능이 있다는 걸 알 수 있을 것이다. 또한 when은 표현식이니 대입문에 사용해보자.
1 2 3 4 5 6 7 8 9 10 11 12 | import java.util.* fun main(args: Array<String>){ val s = Scanner(System.`in`) val num = s.nextInt() val msg = when(num) { in 1..10 -> "1부터 10사이 숫자" //String 타입 in 11..20 -> "11부터 20사이 숫자" //String 타입 else -> num //Int 타입 } println(msg) } | cs |
1 2 3 4 5 6 7 8 | 3 //입력 1부터 10사이 숫자 15 //입력 11부터 20사이 숫자 -1 //입력 -1 | cs |
주의할 점은 whend은 반드시 하나의 결과가 결정되어야 하므로 else를 꼭 지정해줘야 한다.
'프로그래밍 (Programming) > 코틀린 (Kotlin)' 카테고리의 다른 글
코틀린(Kotlin) 12. break와 continue (0) | 2019.01.31 |
---|---|
코틀린(Kotlin) 11. 반복문(for, while, do-while) (0) | 2019.01.31 |
코틀린(Kotlin) 9. 연산자와 연산자 오버로딩(3) (0) | 2019.01.30 |
코틀린(Kotlin) 9. 연산자와 연산자 오버로딩(2) (0) | 2019.01.28 |
코틀린(Kotlin) 9. 연산자와 연산자 오버로딩(1) (0) | 2019.01.25 |