. Java의 정석
[Java] 사칙 연산자, 0으로 나누기
박인영
2021. 7. 7. 01:10
<0으로 나누기>
나눗셈은 일반적으로 곱셈의 역연산으로 정의된다.
즉, 어떤 b와 c에 대해
a * b = c 인 a가 유일할 때, 나눗셈은
a = c / b 와 같이 정의 된다.
이때 b가 0일 경우, a의 값에 관계없이 c는 항상 0이 되고,
a * 0 = 0 에서 a의 가능성은 무한히 많아 하나로 정해지지 않는다.
따라서 a는 존재하지 않으며
0으로 나누기 하는 수학적 의미는 없다.

위 그래프는 y = 1 / x 꼴의 반비례 그래프이다.
한 변수의 값이 0에 가까워질수록
다른 변수의 값은 무한대에 가까워지는 것을 볼 수 있다.
컴퓨터 프로그래밍에서는 어떤 수를 0으로 나누는 경우
오류를 발생시키거나, NaN을 반환한다.
(NaN : Not a Number. 숫자가 아니다)
그 이유는 컴퓨터 프로그래밍은
A÷B의 몫을 A에 B로 몇 번 뺄 수 있느냐로
인식하기 때문이다.(이 경우 그 몫은 무한대가 되며, 나머지는 없다.)
그렇다면 Java에서는 어떨까?
<정수 / 0>
만일 Java에서 정수인 피연산자를 0으로 나눈다면 어떻게 될까?

컴파일은 정상적으로 되지만, 실행시 오류가 발생한다.
< 정수 / 0.0 >
그렇다면 정수인 피연산자를 0이 아닌 0.0으로 나눈다면?

컴파일이 정상적으로 되고, Infinity(무한대)가 출력된다.