importjava.lang.*;publicclassArithmeticOperatorExample1 {publicstaticvoidmain(String[] args){int a =10;int b =3;int c = a + b;int d = a - b;int e = a * b;int f = a / b;int g = a % b;System.out.println("c = "+ c);System.out.println("d = "+ d);System.out.println("e = "+ e);System.out.println("f = "+ f);System.out.println("g = "+ g); }]
위의 예제를 실행하면 다음과 같은 출력 결과가 나온다.
c = 13
d = 7
e = 30
f = 3
g = 1
눈여겨볼 부분은 f와 g이다.
f는 결과적으로 10 / 3의 나눗셈 연산을 수행하게 되는데, 앞서 살펴본 정수의 특징이 적용되어 결과가 정수로 나오게 된다(정수 문서에 정수의 특징이 기록되어 있다). 따라서 정수형 나눗셈이 이루어지게 되어 결과는 3이 대입된다.
g는 나눗셈의 나머지가 저장되며, 정수형 나눗셈 결과의 나머지인 1이 대입된다.
정리하면 다음 그림과 같다.
산술 연산자 데모 2
importjava.lang.*;publicclassArithmeticOperatorExample2 {publicstaticvoidmain(String[] args){int a =1+2*3;int b = (1+2) *3;System.out.println("a = "+ a);System.out.println("b = "+ b); }}
실행하면 출력 결과는 다음과 같이 나온다.
a = 7
b = 9
산술 연산은 다음과 같이 우선순위가 구분되어 있다.
우선순위 높음 : *, /, %
우선순위 낮음 : +, -
우선순위가 동일한 연산자들끼리는 좌측부터 계산되며, 우선순위가 다를 경우 높은 연산자가 먼저 실행된다. 따라서 a의 경우 2 * 3이 먼저 실행되어 7이 대입된다. 하지만 괄호연산(( ))이 가장 높은 우선순위를 가지고 있기 때문에 원하는 연산을 묶어주면 실행 순서가 바뀌게 된다. b의 경우 (1 + 2)가 먼저 실행되어 9가 대입된다.
산술 연산자 데모 3
importjava.lang.*;publicclassArithmeticOperatorExample3 {publicstaticvoidmain(String[] args){int a =75;int b = a /10;int c = a %10;System.out.println("b = "+ b);System.out.println("c = "+ c); }}
실행하면 다음과 같은 결과가 나온다.
b = 7
c = 5
나눗셈과 나머지 연산을 이용하면 다양한 계산을 수행할 수 있다. 위의 예제는 두 자리 정수의 자리수 분리를 수행한다.
세 자리 혹은 그 이상인 경우도 이와 유사하게 분리가 가능하다.
importjava.lang.*;publicclassArithmeticOperatorExample3 {publicstaticvoidmain(String[] args){int a =136;int b = a /100;int c = a /10%10;int d = a %10;System.out.println("a = "+ a);System.out.println("b = "+ b);System.out.println("c = "+ c);System.out.println("d = "+ d); }}
실행한 결과는 다음과 같다.
a = 136
b = 1
c = 3
d = 6
세 자리 이후부터는 계산과정이 조금 복잡해지는데, 그림으로 정리해보면 다음과 같다.
백의 자리 구하기
십의 자리 구하기
일의 자리 구하기
산술 연산자 데모 4
importjava.lang.*;publicclassArithmeticOperatorExample4 {publicstaticvoidmain(String[] args){int a =7;int b = a %2;System.out.println("a = "+ a);System.out.println("b = "+ b); }}
실행 후 출력 결과는 다음과 같다.
a = 7
b = 1
b의 값은 a가 얼마냐에 따라 달라지긴 하지만, 예측 가능한 범위 내에 있다. b는 2로 나눈 나머지이기 때문에 가질 수 있는 값은 0과 1 두 가지 뿐이다. 따라서 a가 아무리 복잡해도 b를 보면 배수 판정이 가능하다.
a가 7일 경우 2로 나누면 나머지가 1이기 때문에 2로 나누어 떨어지지 않는다. 따라서 7은 2의 배수가 아니다. 이와 같이 나머지 연산을 이용하면 배수 판정이 가능하다.