프로그래밍 수업 초반에는 계산기 예제를 주로 연습합니다. 자료형과 연산자를 연습하기 좋기 때문인데요. 그런데 자주 나오는 질문이 있습니다.
🙋🏻♂️"0으로 나누니까 안되는데요..."
아무리 해 봐도, 나누려는 수가 무엇이든 0으로는 나눌 수가 없습니다. 화면엔 "ArithmeticException : Cannot divided by zero"만 달랑 떠있는 것이죠. 계산기는 왜 0으로 나눌 수 없는 걸까요?
나눗셈을 생각해 봅시다. 모든 수에 그 역수를 곱하면 1이라는 답이 나옵니다.
3 * 1/3 = 1
6 * 1/6 = 1
0.1 * 10 = 1
그래서 우리가 어떤 숫자를 0으로 나누려고 하면, 0의 역수를 생각해야 합니다. 0의 역수는 0분의 1이고, 거기에 0을 곱하면 1이라는 답이 나와야 하는데
0 곱하기 0은 0이니까 무슨 수를 써도 1이 나올 수 없습니다. 따라서 Java로 만든 계산기에서 어떤 수를 0으로 나누려고 하면 Java는 "야!!! 답이 없네!!!" 하고 에러(엄밀히 말하면 예외, Exception입니다.)를 뿅~ 하고 띄워주는 거에요.
우리가 자주 쓰는 Windows의 계산기도, 0으로 나누려고 하면, 아래와 같이 짜증을 내죠.
그런데 우리가 만드는 Java 계산기는 0을 만나면 당장 종료가 되는데, Windows 계산기는 에러 메시지만 띄울 뿐 C나 CE버튼을 누르면 다른 계산을 할 수 있습니다. 이건 무슨 차이일까요?
에러(예외, Exception)가 발생하는 지점 전/후에 안전한 처리를 했기 때문인데요. 예를 들면 if문 등의 조건문을 사용하거나, 예외를 제어하기 위한 try-catch문을 사용할 수도 있습니다. 그 얘기는 예외 관련 Java API나 글 등을 찾아보는 것을 추천합니다.
로또 번호 생성 (0) | 2023.01.16 |
---|---|
홀짝 맞추기 게임을 자바로 구현해 보자!!(feat.오징어게임) (0) | 2022.12.02 |
(자바) 함수형 프로그래밍과 람다 표현식 (0) | 2022.09.16 |
댓글 영역