기본 연산자(1)
1. 항과 연산자
: 연산에 사용하는 기호를 연산자라고 한다.
일반 대수학과 같이 항의 개수에 따라 구분한다.
연산자
|
설명
|
연산 예
|
단항 연산자
|
항이 한 개인 연산자
|
++num
|
이항 연산자
|
항이 두 개인 연산자
|
num1 +num2;
|
삼항 연산자
|
항이 세 개인 연산자
|
(5>3) ? 1: 0;
|
삼항 연산자는 조건 연산자를 사용할 때 이용한다. 각각 조건식? 결과 1: 결과 2;의 형태로 쓴다.
1. 대입 연산자
: 변수에 값을 대입하는 연산자로 이항 연산자 중에서 우선순위가 가장 낮은 연산자이다.
즉, 하나의 문장에 여러 연산자가 있을 때 연산을 다 끝낸 후 마지막에 연산 결과를 변수에 대입하는 것.
2. 부호 연산자
부호 연산자에는 +,- 가 있으며 더하기, 빼기 연산에 쓰이는 이항 연산자이면서 부호를 나타내는 단항 연산자로도 사용 가능하다. 단항 연산자로 사용할 경우 +3, -3을 나타낼 수 있다.
※변수에 - 연산자만 쓴다고 해서 선언된 변수의 값 자체가 바뀌는 것은 아님.
int num = 10;
System.out. println(-num);
이렇게 출력하면 값 10에 -가 붙어서 -10이 출력되지만 num 값이 실제로 바뀌는 것은 아님.
값 자체를 음수로 바꾸고 싶다면
int num = 10;
System.out. println(-num);
num=-num System.out. println(num);
대입 연산자를 이용하여 num=-num으로 대입하여 결괏값을 음수로 바꿀 수 있다.
3. 산출 연산자
: 사칙연산에서 사용하는 연산자
알아둘 점은 나누기 부분이 몫과 나머지를 따로 구하는 것이다.
연산자
|
기능
|
연산 예
|
+
|
두 항을 더한다.
|
5+3
|
-
|
앞에 있는 항에서 뒤에 있는 항을 뺀다.
|
5-3
|
*
|
두 항을 곱합니다.
|
5*3
|
/
|
몫을 구한다.
|
5/3
|
%
|
나머지를 구한다.
|
5% 3
|
※산출 연산자의 우선순위
:일반 수학과 동일하고 % 연산자는 *,/ 연산자의 우선순위와 동일하다.
4. 증가·감소 연산자
:단항 연산자로서 앞이나 뒤에서 사용하며 값을 1만큼 늘리거나 1만큼 줄입니다.
연산자
|
기능
|
연산 예
|
++
|
항의 값에 1을 더합니다.
|
val = ++num;
val = num++;
|
--
|
항의 값에서 1을 뻅니다.
|
val = --num;
val = num--;
|
증가·감소 연산자는 위치가 중요하다.
연산자를 앞에 써주면 대입하기 전에 1을 올려주고 대입
연산자를 뒤에 써주면 변수값을 대입하고 난뒤에 연산의 결과로 그 변수에 1을 더하게 된다.
예시를 같이보면
int a = 10;
int num = ++a;
num 의 결과값은 10에 1이 더해진 11이기 때문에 11. num에 11이 대입된다.
그러나 연산이 끝나고 a 값을 보면 a 의 값은 여전히 10이다. 대입 된 값자체가 바뀌는 것이 아니기 때문이다.
num = 11
a=10
int a = 10;
int num = a++;
num의결과 값은 a가 대입되어 10이된다.
a의 값은 모든 연산이 끝나고 난뒤 ++ 이므로 1을 더해준다.
따라서 a 는 11 이 된다.
num = 10
a = 11
※ 위치의 중요성에 대해 조금더 살펴보기
int a =10;
int b = 5;
int result;
result = a++ + --b;
System.out.println(result);
result = 14
a = 11
b = 4