2024-06-28 18:28:51

* 읽기전에 필독 / 우측 상단에 전구 모양을 눌러 light 모드로 바꾸어주세요. (검은 화면에 맞춰 글 쓰려니  어렵네요...)

연산자

자바에서 사용하는 다양한 연산자에 대해서 정리

 

항과 연산자

항(Operand) : 연산에 사용되는 값

연산자(Operator) : 항을 이용하여 연산하는 기호

연산자 설명 연산 예시 (추후 설명 예정)
단항 연산자 항이 한 개인 연산자 ++num
이항 연산자 항이 두 개인 연산자 num1 + num2
삼항 연산자 항이 세 개인 연산자 (5 > 3) ? 1: 0

대입 연산자

변수에 값을 대입하는 연산자

연산의 결과를 변수에 대입

우선 순위가 가장 낮은 연산자

왼쪽 변수(left value)에 오른쪽 변수(값 right value)를 대입

public class Operation{
	public static void main(String[] args){
    	int age = 24;				// 나이를 의미하는 age 변수에 값 24를 대입함
        
        int engScore = 80;
        int mathScore = 90;
        int totalScore;
       	totalScore = mathScore + engScore;	// mathScore값과 engScore 값을 더하여 totalScore에 대입함	
    }
}

연산자

산술 연산자 기능 연산 예시
+ 두 항을 더합니다. 5 + 3
- 앞에 있는 항에서 뒤에 있는 항을 뺍니다. 5 - 3
* 두 항을 곱합니다. 5 * 3
/ 앞에 있는 항에서 뒤에 있는 항을 나누어 '몫'을 구합니다. 5 / 3
% 앞에 있는 항에서 뒤에 있는 항을 나누어 '나머지'를 구합니다. 5 % 3

- %는 나머지를 구하는 연산자

=> 숫자 n 의 나머지는 0 ~ n-1 범위의 수

=> 특정 범위 안의 수를 구할 때 종종 사용

증감 연산자 기능 연산 예시
++ 항의 값에 1을 더합니다. val = ++num; // 먼저 num 값이 1 증가 한 후 val 변수에 대입
val = num++; // val 변수에 기존 num 값을 먼저 대입한 후 num 값의 증가
-- 항의 값에 1을 뺍니다. val = --num; // 먼저 num 값이 1 감소한 후 val 변수에 대입
val = num--; // val 변수에 num 값을 먼저 대입한 후 num 값 1 감소

 

관계 연산자 기능 연산 예시
> 왼쪽 항이 크면 참, 아니면 거짓을 반환 num > 3;
< 왼쪽 항이 작으면 참, 아니면 거짓을 반환 num < 3;
>= 왼쪽 항이 오른쪽 항보다 크거나 같으면 참
아니면 거짓을 반환
num >= 3;
<= 왼쪽 항이 오른쪽 항보다 작거나 같으면 참
아니면 거짓을 반환
num <= 3;
== 두 개 항의 값이 같으면 참, 아니면 거짓을 반환 num == 3;
!= 두개 항의 다르면 참, 아니면 거짓을 반환 num != 3;
논리 연산자 기능 연산 예시
&&
(논리 곱)
두 항이 모두 참인 경우에만 결과가 참
하나라도 다를 경우 거짓
booleanVal = (5 > 3) && (5 > 2);
// true
||
(논리 합)
두 항 중 하나의 항만 참이면 결과 값은 참
두 항 모두 거짓이면 결과 값은 거짓
booleanVal = (5 > 3) || (5 < 2);
// true
!
(부정)
단항 연산자로 참인 경우 거짓으로 바꾸고
거짓인 경우 참으로 바꿈
booleanVal = !(5 > 3);
// false
복합 대입 연산자 기능 연산 예시
+= 두  항의 값을 더해서
왼쪽 항에 대입함
num1 += 2;
// num1 = num1 + 2; 와 동일
-= 왼쪽 항에서 오른쪽 항을 빼서
그 값을 왼쪽 항에 대입함
num2 -= 2;
// num2 = num2 -2; 와 동일
*= 두 항을 곱해서 왼쪽 항에 대입함 num3 *= 2;
// num3 = num3 * 2; 와 동일
/= 왼쪽 항을 오른쪽 항으로 나누어
그 몫을 왼쪽 항에 대입함
num4 /= 2;
// num4 = num4 / 2; 와 동일
%= 왼쪽 항을 오른쪽 항으로 나누어
그 나머지를 왼쪽 항에 대입함
num5 %= 2;
// num5 = num5 % 2; 와 동일
<<= 비트를 왼쪽으로 이동하고 그 값을 왼쪽 항에 대입함 num6 <<= 2;
// num6 = num6 << 2; 와 동일
>>= 비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입함
(왼쪽에 채워지는 비트 값은 부호 비트와 동일)
num7 >>= 2;
// num7 = num7 >> 2; 와 동일
>>>= 비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입함
( 왼쪽에 채워지는 비트 값은 0입니다)
num8 >>> 2;
num8 = num8 >>> 2; 와 같음
&= 두 항의 & 비트 연산 후 그 값을 왼쪽 항에 대입함 num9 &= num8;
// num9 = num9 & num8; 와 동일
|= 두 항의 | 비트 연산 후 그 값을 왼쪽 항에 대입함 nun10 |= num9;
// num10 = num10 | num9; 와 동일
^= 두 항의 ^ 비트 연산 후 그 값을 왼쪽 항에 대입함 num11 ^= num10;
// num11 = num11^num10;와 동일

삼항연산자

조건 식의 결과가 true인 경우와 false인 경우에 따라 다른 식이나 겨로가가 수행됨

제어문 중 조건문을 간단히 표현할 때 사용할 수 있음

public class OperationEx2{
	public static void main(String [] args){
    	int fatherAge = 45;
        int motherAge = 47;
        
        char ch;
        ch = (fatherAge > motherAge) ? 'T' : 'F';// 엄마 나이가 아빠 나이보다 작으면 T 아니면 F를 ch에 대입
    	
        System.out.println(ch); 		// 엄마 나이 47 아빠 나이 45로 F가 출력
    }
}

연산자 우선 순위

우선순위 연산자 연산방향
1 일차식 (), [] ---------------------->
2 단항 !, ++, --, +- <----------------------
3 산술 %, / ---------------------->
4 산술 +, - ---------------------->
5 비트 이동 <<, >> ---------------------->
6 관계 <,>, <=, >= ---------------------->
7 관계 ==, != ---------------------->
8 비트 곱 & ---------------------->
9 비트 차 ^ ---------------------->
10 비트 합 | ---------------------->
11 논리 곱 && ---------------------->
12 논리 합 || ---------------------->
13 조건 ? : ---------------------->
15 대입 =, +=, -=, *=, %=, /= <---------------------

'Java' 카테고리의 다른 글

Java 정리 4-2  (0) 2024.07.03
Java 정리 4-1  (0) 2024.07.01
Java 정리 2-3  (0) 2024.06.26
Java 정리 2-2  (0) 2024.06.25
Java 정리 2-1  (0) 2024.06.25