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
- 리사이클러뷰 아이템 재사용
- 안드로이드 스튜디오 인터넷 연결 안되어 있을 때
- 아파치란
- LifeCycle
- 변수
- AAC
- 안드로이드 스튜디오 tts
- recyclerview item recycle
- 안드로이드 스튜디오 인터넷 연결 확인
- savedinstancestate
- apache란
- 다른 객체 리스트의 비교
- Thread
- 안드로이드 스튜디오 커스텀 다이얼로그
- Kotlin
- 이중for문 사용 안하기
- 안드로이드 스튜디오 custom dialog
- 아파치 엔진엑스
- dagger error
- edittext 연결
- 안드로이드 스튜디오 style
- 자바 스레드 예제
- 안드로이드 디자인패턴
- 디자인 패턴 예제
- java
- 객체지향 프로그래밍 5가지 원칙
- java thread 예제
- apache nginx
- hilt error
- 안드로이드 스튜디오 반복되는 레이아웃 코드
Archives
- Today
- Total
Sam Story
2024-12-18 조건문을 좀 더 간결하게 작성 본문
오늘은 간단한 on/off 로직을 작성함에 있어서
기존의 조건문을 효율적으로 작성하는 방법에 대해서 간단히 포스팅 해보려 한다.
지난번 레이아웃만 만들었던 계산기 어플을 기능까지 적용해보고 있다.
그러던 와중에 밤/낮 모드 버튼에 대한 기능을 만들다가 조건문을 작성했었는데
작성한 코드를 보자
class CarculatorViewModel: ViewModel() {
// 모드 상태 LiveData
private val _modeData = MutableLiveData<Boolean>()
val modeData: LiveData<Boolean> get() = _modeData
init {
_modeData.value = false
}
// 모드 바꾸는 함수
fun changeMode() {
if(_modeData.value == true) {
_modeData.value = false
} else {
_modeData.value = true
}
}
}
init 로 _modeData (밤/낮의 상태를 Boolean으로 확인) 초기값을 초기화 해주고
버튼을 누를 때마다 changeMode() 함수를 호출해서
true / false 를 바꿔주는 간단한 함수다.
위 코드처럼 작성해도 정상적으로 작동하기는 하지만
문득 조건문의 분기가 생기는게 굉장히 비효율적인것 같았고
실제로 이렇게 작성하게 되면 경고메시지도 발생한다.
첫번째 경고는 불필요하게 if문을 많이 사용한다.
두번째 경고는 직역하면 코드를 청소한다.
두가지 내용 모두 코드가 불필요하게 많이 작성되어 있다의 경고를 내포하고 있다.
그럼 위 경고를 클릭해 수정하게 되면 어떻게 되는지 살펴보자.
class CarculatorViewModel: ViewModel() {
// 모드 상태 LiveData
private val _modeData = MutableLiveData<Boolean>()
val modeData: LiveData<Boolean> get() = _modeData
init {
_modeData.value = false
}
// 모드 바꾸는 함수
fun changeMode() {
_modeData.value = _modeData.value != true
}
}
조건문의 분기를 나눠 작성했을 경우 5줄되던 코드가 1줄로 수정되었다.
코드 자체도 굉장히 단순해졌고 작동방식도 같다.
_modeData.value 가 true 가 아니라면 true을 반환하고
_modeData.value 가 true 라면 false를 반환하는 것이다.
사실 별게 아닐 수도 있지만 혹시나 무의식적으로 간단한 코드에도
if문을 이용해 분기를 나타내는 경우도 없지않아 있기에
한번 더 복습하기 위해 포스팅을 남겨 놓는다.
'공부기록' 카테고리의 다른 글
Axios (0) | 2025.05.27 |
---|---|
2025-05-08 node.js 백엔드 기초 (1) | 2025.05.08 |
2024-11-10 LottieAnimationView (6) | 2024.11.10 |
2024-10-27 앱 다크모드 특정색 변경 (1) | 2024.10.27 |
2024-10-22 버튼 배경 그라데이션 처리 (2) | 2024.10.22 |