질문(예시)
질문을 구체적으로 작성해주셔야 명확한 답변을 받으실 수 있습니다! (수업 관련 질문이 없을 경우 취업 관련, 공부 관련된 고민 등도 남겨주세요!)
출력이 되지 않는 문제점과 주석의 해석이 잘못된 부분이 있는지 궁금합니다
2. 공공데이터포탈에서 제공해주는 Open Api를 사용할 때 지난번 알려주신 mokie를 이용하지 않고, 무료 인증키를 받아 공공데이터포탈 http 서버에 직접 접근해서 데이터를 받아오려고하니, https 통신규약을 따르고서는 통신이 안되어서요
화면캡쳐(없을 경우 생략)
질문해주신 코드
import java.util.*
fun main() {
val sc = Scanner(System.`in`)
val alamHour = sc.nextInt()// 알람 시간입력
val alamMin = sc.nextInt()// 알람 분 입력
// 함수 인자에 매개변수를 넣어준다
fun calculateTime(alamHour: Int, alamMin: Int) {
// 시간을 분으로 환산하고 분을 더한 뒤 45분을 빼면 원래의 시간이 나온다
val totalMin = ((alamHour * 60) + alamMin) - 45
val realHour: Int
val realMin: Int
// 조건식을 이용하여 양수일 경우 60으로 나눈 몫은 시간, 나머지는 분으로 재환산하여 출력
if (totalMin > 0) {
realHour = totalMin / 60
realMin = totalMin % 60
return println("${realHour}, ${realMin}")
//음수일 경우 24*60=1440를 더한 뒤 양수계산식과 동일하게 계산하여 24시 이전의 시간으로 재환산하여 출력
} else if (totalMin <= 0) {
realHour = (totalMin + 1440) / 60
realMin = (totalMin + 1440) % 60
return println("${realHour}, ${realMin}")
}
}
}
Kotlin
복사
JavaScript
복사
프로젝트 주소(없을 경우 생략)
멘토 답변
•
답변1
import java.util.*
fun main() {
val sc = Scanner(System.`in`)
val alamHour = sc.nextInt()
val alamMin = sc.nextInt()
fun calculateTime(alamHour: Int, alamMin: Int) {
val totalMin = ((alamHour * 60) + alamMin) - 45
val realHour: Int
val realMin: Int
if (totalMin >= 0) { ---- (3) // totalMin이 0일때도 이 로직이 타도록 수정
realHour = totalMin / 60
realMin = totalMin % 60
return println("$realHour $realMin")
} else { ------- (2) // 불필요한 else if 제거
realHour = (totalMin + 1440) / 60
realMin = (totalMin + 1440) % 60
return println("$realHour $realMin") ---- (4) // 문제 출력 값과 형식 통일 , 제거
}
}
calcuateTime(alamHour, alamMin) --- (1) // 선언한 함수 호출을 하기!
}
JavaScript
복사
•
답변2
간결한 코드로 리팩토링한 코드
import java.util.*
fun main() {
val sc = Scanner(System.`in`)
val alamHour = sc.nextInt()
val alamMin = sc.nextInt()
val time = (alamHour * 60) + alamMin - 45
if (time < 0) time += 1440
println("${time / 60} ${time % 60}")
}
JavaScript
복사