Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- 널 안전성
- 람다함수
- do while문
- dbms
- 오브젝트
- 통합개발환경
- typeAlias
- 버전의 중요성
- 오버라이드
- MySQL
- 스프링부트2.7.9
- 접근제한자
- while문
- 스프링부트 버전
- 타입별칭
- Until
- 엘비스
- when문법
- 맥북M1
- lateinit
- 반복문
- 로그캣
- downto
- 초기화 미루기
- 코틀린
- 인텔리제이
- for문
- 안드로이드 스튜디오
- Kapt
- 컴패니언
Archives
- Today
- Total
좌충우돌 코딩
코틀린 - when문 설명 본문
코틀린은 다른 언어에 없는 when이라는 녀석(?)이 있습니다.
코틀린의 부모인 자바 문법을 보면 자바에서 switch문이 코틀린에 when문과 비슷하다고 보시면 됩니다.
하지만 코틀린은 switch문에 if가 추가된 느낌입니다.
자바의 경우 완전 비교만으로 결과를 만들어냅니다.
예시를 볼까요?
switch(변수) {
case 비교값 :
// 변수값과 비교값이 같으면 주석처리된 부분이 실행됩니다.
}
변수값이 2이고 비교값이 2면 주석처리된 부분이 실행이 되는 문법이죠.
이번엔 코틀린을 볼까요?
when(변수) {
비교값 -> // 변수값과 비교값이 같으면 이 영역이 실행됩니다.
}
비슷한 느낌이죠??
새로운 코틀린 when만의 기능을 볼까요?
when(변수) {
비교값1, 비교값2 -> // 변수값과 비교값1 또는 비교값2와 같으면 이 영역이 실행됩니다.
}
or 비교가 가능해집니다.
만일 변수가 3이고 비교값1이 1, 비교값2가 3이면 주석처리된 부분이 실행이 됩니다.
다른 방법도 알아보겠습니다.
when(변수) {
in 1..5 -> // 변수값과 비교값이 같으면 이 영역이 실행됩니다.
}
새로운 문법이 나왔습니다.
비교값1, 비교값2는 어느정도 이해가 쉬웠죠?
이번 in은 범위를 지정하는 것이죠. 첫번째문과 동일하게 한다면 아래와 같습니다.
when(변수) {
1, 2, 3, 4, 5 -> // 변수값과 비교값이 같으면 이 영역이 실행됩니다.
}
비교값1, 비교값2, 비교값3, 비교값4, 비교값5에 각각 1,2,3,4,5를 넣은 것과 동일한 in 1..5가 됩니다.
변수값이 3이면 1~5 사이에 포함되기 때문에 주석에 있는 것이 실행이 되죠.
in 문법에서 부정도 가능합니다.
when(변수) {
!in 1..5 -> // 변수값과 비교값이 같으면 이 영역이 실행됩니다.
else -> // 위 조건에 맞지 않으면 이 영역이 실행됩니다.
}
1~5가 아니면 첫번째 조건이 실행이 되며 1~5라면 else가 실행됩니다.
자바 switch 문에서 조건에 전부 안 맞을 경우에는 defult를 사용하지만, 코틀린 when 문에서는 else를 사용합니다.
이래서 사람들이 switch문에 if문의 확장판이라고 하나봅니다.
if문도 조건에 전부 안 맞는 것은 else로 나오게 되어있으니까요~
그럼 이만~~
'코틀린 > 순수 코틀린' 카테고리의 다른 글
| 코틀린 - 함수(funcation) (0) | 2023.03.23 |
|---|---|
| 코틀린 - 반복문(for, while) (0) | 2023.03.22 |
| 코틀린 - 컬렉션(Collection) (0) | 2023.03.21 |
| 코틀린 - 배열(Array) (0) | 2023.03.21 |
| 코틀린 - 상수 val과 const val의 차이 (0) | 2023.03.21 |
Comments