2021. 9. 2. 16:40ㆍ프로그래밍/JAVA
항과 연산자
항(operand) : 연산에 사용되는 값
연산자(operator) : 항을 이용하여 연산하는 기호
단항 연산자
항이 1개인 연산자
ex) ++num
이항 연산자
항이 2개인 연산자
ex) num1 + num2;
삼항 연산자
항이 3개인 연산자
ex) (2 < 3) ? 1: 0;
대입 연산자
변수에 값을 대입하는 연산자, 연산의 우선순위가 가장 낮음
왼쪽 변수(lvalue)에 오른쪽 변수(값)(rvalue)를 대입
ex) int num = 10; // num 변수에 값 10을 대입
부호 연산자
단항 연산자
양수/음수의 표현, 값의 부호를 변경
변수에 +, - 를 사용한다고 해서 변수의 값이 변하는 것이 아님
변수의 값을 변경하려면 대입 연산자를 사용해야 함
산술 연산자
사칙연산에 사용되는 연산자
ex) +, -, *, /, %
% : 나머지를 구하는 연산자 : 특정 범위 안의 수를 구할 때 사용
증가 감소 연산자
단항 연산자
1만큼 더하거나 1만큼 뺄 때 사용하는 연산자
항의 앞/뒤 위치에 따라 연산의 결과가 달라짐에 유의
ex) ++, --
val = ++num; // 먼저 num값이 1증가한 후 val 변수에 대입
val = num++; // val 변수에 기존 num 값을 먼저 대입한 후 num값 1 증가
관계 연산자
이항 연산자연산의 결과가 true(참), false(거짓)으로 반환됨
ex) >, <, >=, <=, ==, != 연산자를 통해 true나 false를 반환
논리 연산자
관계 연산자와 혼합하여 많이 사용됨
연산의 결과가 true(참), false(거짓)으로 반환됨
ex) &&, ||, !
&& : 두 항이 모두 참인 경우에만 true, 아니라면 false // booleanval = (3 > 2) && (3 > 1);
|| : 두 항 중 하나의 항만 참이면 true, 두 항 모두 거짓이면 false // booleanval = (3 > 2) || (3 < 1);
! : 단항 연산자, true인 경우 false로 바꾸고, false이라면 true로 바꿈 // booleanval = !(3 > 2);
단락 회로 평가
&&은 두 항이 모두 true일 때만 결과가 true // 앞의 항이 false이면 뒤 항의 결과를 평가하지 않아도 false
||은 두 항이 모두 false일 때만 결과가 false // 앞의 항이 true이면 뒤 항의 결과를 평가하지 않아도 true
복합 대입 연산자
대입 연산자와 다른 연산자를 함께 사용
프로그램에서 자주 사용하는 연산자
ex)
+= : 두 항의 값을 더해서 왼쪽 항에 대입 // num1 += 2; // num1 = num1 + 2; 와 같음
-= : 왼쪽 항에서 오른쪽 항을 빼서 그 값을 왼쪽 항에 대입
*= : 두 항을 곱해 왼쪽 항에 대입
/= : 왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입
%= : 왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입
조건 연산자
삼항 연산자
조건 식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 식이나 결과가 수행됨
제어문 중 조건문을 간단히 표현할 때 사용할 수 있음
조건식 ? 결과 1: 결과 2;
-> 조건식이 참이면 결과1, 조건식이 거짓이면 결과2가 반환
ex) int num = (3 > 2) ? 10 : 20; // 10
비트 연산자
정수에만 사용할 수 있음
~ : 비트의 반전(1의 보수)
ex) a = ~a;
& : 비트 단위 AND
ex) 1 & 1 // 1 반환 그 외는 0
| : 비트 단위 OR
ex) 0|0 // 0 반환 그 외는 1
^ : 비트 단위 XOR
두 개의 비트가 서로 다른 경우에 1을 반환
<< : 왼쪽 shifta<<2 // 변수 a를 2비트 만큼 왼쪽으로 이동
ex) 정수 15가 왼쪽 2자리 이동한 경우(15 << 2) // ※ 2의 2승을 곱한 값과 동일
00000000 00000000 00000000 00001111 // 15
00000000 00000000 00000000 0000111100 // 60
>> : 오른쪽 shifta>>2 // 변수 a를 2비트 만큼 오른쪽으로 이동
>>> : 오른쪽 shift채워지는 비트가 부호와 상관 없이 0
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] this란? (0) | 2021.09.09 |
---|---|
[JAVA] 정보은닉(information hiding) (0) | 2021.09.08 |
[JAVA] 객체지향 프로그래밍과 클래스 (0) | 2021.09.08 |
[JAVA] 반복문의 종류 (0) | 2021.09.04 |
[JAVA] 조건문의 종류 (0) | 2021.09.03 |