728x90
28일차
30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
강의 목표
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 앱 개발시 원하는 기능을 구현하기 위해 어떤 기술이 필요한 지 알 수 있습니다.
- 디자인 아키텍처 패턴, 비동기 처리 등 효율적인 앱 개발 방법을 익힐 수 있습니다.
목차 02 Basic - Ch04. 계산기
인트로계산기 UI 그리기 - 1계산기 UI 그리기 - 2계산기 UI 그리기 - 3계산기로 계산하기 - 1- 계산기로 계산하기 - 2
- 계산 기록 저장하기 - 1
- 계산 기록 저장하기 - 2
- 아웃트로
계산기로 계산하기 - 2
- 이전 포스팅에서는 숫자와 연산자 입력을 받고 View 창에 띄워주는 로직까지 짜보았다
- 이번에는 실제로 계산까지 되게 할꺼임
- numberbuttonclicked에서 계산하는 함수 calculateExpression을 추가할 수 있도록 따로 함수를 짜보자
private fun calculateExpression() : String {
val expressionTexts = expressionTextView.text.split(" ");
if(hasOperator.not() || expressionTexts.size != 3) {
return ""
} else if(expressionTexts[0].isNumber().not() || expressionTexts[2].isNumber().not()) {
return ""
}
val exp1 = expressionTexts[0].toBigInteger()
val exp2 = expressionTexts[2].toBigInteger()
val op = expressionTexts[1]
return when(op) {
"+"-> (exp1 + exp2).toString()
"-"-> (exp1 - exp2).toString()
"*"-> (exp1 * exp2).toString()
"/"-> (exp1 / exp2).toString()
"%"-> (exp1 % exp2).toString()
else-> ""
}
}
- 먼저 expressionText의 문자열을 split하여 3개의 문자로 나눈다
- 연산자가 없거나, expressionText를 나눈 문자열이 3개가 아니라면 예외처리
- 첫번째와 마지막 문자열이 숫자가 아니라면 예외처리
- 어떻게 예외처리함? → isNumber()
- 존재하지 않는 함수 → 내장 함수를 만들어주자
fun String.isNumber() : Boolean { return try { this.toBigInteger() true } catch (e: NumberFormatException) { false } }
- try-catch문을 이용하여 객체를 BigInteger로 변환시켜보자
- NumberFormatException이 발생한다면 숫자가 아님
- 이후 숫자로 변환하고 when문을 이용하여 직접 연산해주자
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강인증샷
링크
728x90
'Android > Challenge' 카테고리의 다른 글
패스트캠퍼스 챌린지 30일차 (0) | 2022.02.22 |
---|---|
패스트캠퍼스 챌린지 29일차 (0) | 2022.02.21 |
패스트캠퍼스 챌린지 27일차 (0) | 2022.02.19 |
패스트캠퍼스 챌린지 26일차 (0) | 2022.02.18 |
패스트캠퍼스 챌린지 25일차 (0) | 2022.02.17 |