<산술 연산자>

 

산술 연산자에는 사칙 연산자(+, -, *, /)와

나머지 연산자(%)가 있다.

 

 

 

<사칙 연산자>

 

수학에서 쓰이는 사칙연산(+, -, ×, ÷)과 쓰임은 같으나

프로그래밍에선 × 대신 * , ÷ 대신 / 를 사용한다.

 

 

 

<사칙연산 규칙>

 
1 + 2 + 3 = 6

이라는 식이 있다면 수학과 마찬가지로
기본적으로 왼쪽에서 오른쪽 계산하고

 

1 + 2 * (3 + 4) + 5 = 20
라는 식이 있다면 괄호() 안의 값을 먼저 계산하고
곱셈과 나눗셈을 계산한 뒤, 덧셈과 뺄셈을 계산한다.

 

5 / 0 = 에러

그리고 피연산자가 정수형인 경우, 나누는 수로 0을 사용할 수 없다.

 

 

 

<정수형 나눗셈의 값손실>

 

정수형 타입과 정수형 타입의 나눗셈 결과는 정수형 타입이며

연산결과가 실수형일지라도 소수점 이하를 버리고 정수 부분의 값만을 저장한다.

 

byte a = 5;
short b = 2;
System.out..println(a / b);	// 2

 

이는 이미 chapter02 변수의 산술 변환에서 확인 했다.
이때 소수점 이하를 반올림 하는 것이 아니라 버림으로 인해 값손실이 발생한다.

 

 

 

만약 수학계산처럼 2.5라는 결과값을 얻으려면,

피연산자 중 어느 한쪽을 float와 같은 실수형으로 형변환을 해야 한다.

그러면 산술 변환 1번째 규칙에 의해

남은 피연산자 값이 실수형 타입으로 산출 변환되어

실수형 타입의 2.5라는 결과값이 출력된다.

 

 

 

byte a = 5;
short b = 2;
System.out.println((float)a / b);		// 2.5	--- ①
System.out..println(1f * a / b);		// 2.5	--- ②

위와 같이 변수 중 하나에 형변환 연산자로 형변환 시켜주는 ①방법이 있고 

혹인 실수형 1f를 곱해주는 ②방법이 있다.