상세 컨텐츠

본문 제목

왜 Java 계산기에서 0으로 나누면 에러가 나나요?

프로그래밍 언어/Java(자바)

by minao 2022. 11. 17. 16:55

본문

프로그래밍 수업 초반에는 계산기 예제를 주로 연습합니다. 자료형과 연산자를 연습하기 좋기 때문인데요. 그런데 자주 나오는 질문이 있습니다.

🙋🏻‍♂️"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나 글 등을 찾아보는 것을 추천합니다.

관련글 더보기

댓글 영역