연산자 | 사용법 | 설명 |
---|---|---|
산술 연산자 | ||
++ | ++a, a++ | 값을 하나 증가시킵니다.(전위, 후위 연산자) |
-- | --a, a-- | 값을 하나 감소시킵니다.(전위, 후위 연산자) |
+ | a + b | 더하기 |
- | a - b | 빼기 |
* | a * b | 곱하기 |
/ | a / b | 나누기 |
% | a % b | 나머지 |
관계 연산자 (비교연산자) *결과는 boolean | ||
> | a > b | a가 b보타 크면 true를 반환, 작거나 같으면 false를 반환 |
>= | a >= b | a가 b보다 크거나 같으면 true를 반환, 작으면 false를 반환 |
< | a < b | a가 b보다 작으면 true를 반환, 크거나 같으면 false를 반환 |
<= | a <= b | a가 b보다 작거나 같으면 true를 반환, 크면 false를 반환 |
== | a == b | a와 b가 같으면 true를 반환, 다르면 false를 반환 |
!= | a != b | a와 b가 다르면 true를 반환, 같으면 true를 반환 |
(비트 연산자) | ||
<< | a << b | 정수 a의 2진수 값을 왼쪽으로 b만큼 이동시키고 나머지는 0으로 채움 |
>> | a >> b | 정수 a의 2진수 값을 오른쪽으로 b만큼 이동시키고 나머지를 양수는 0으로 음수는 1로 채움 |
& | a & b | a와 b의 and 계산 ex) 4(0100) & 5(0101) = 4(0100) |
| | a | b | a와 b의 or 계산 ex) 4(0100) | 5(0101) = 5(0101) |
^ | a ^ b | a와 b의 xor 계산 ex) 4(0100) ^ 5(0101) = 1(0001) |
논리 연산자 | ||
&& | a && b | AND 연산자, 즉 a와 b가 boolean 값으로 정의되어 있고 true && true라면 true, true && false 라면 false의 결과를 나타낸다. |
|| | a || b | OR 연산자, 즉 a와 b가 boolean 값으로 정의되어 있고 true || true 라면 true, true || fasle 라면 true의 결과를 나타낸다. |
대입 연산자 | ||
+= | a += b | a = a + b;와 같은 의미 *복합대입 연산자 |
-= | a -= b | a = a - b;와 같은 의미 *복합대입 연산자 |
*= | a *= b | a = a * b;와 같은 의미 |
/= | a /= b | a = a / b;와 같은 의미 |
%= | a %= b | a = a % b;와 같은 의미 |
&= | a &= b | a = a & b;와 같은 의미 |
|= | a |= b | a = a | b;와 같은 의미 |
^= | a ^= b | a = a ^ b;와 같은 의미 |
<<= | a <<= b | a = a << b;와 같은 의미 |
>>= | a >>= b | a = a >> b;와 같은 의미 |
삼항 연산자 | ||
? | a = b == c ? d : e | b와 c가 같으면 a변수에 d의 값을 넣고 b와 c가 다르면 e의 값을 입력 |
출처: https://nowonbun.tistory.com/293 [명월 일지:티스토리]
논리연산자
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = false;
boolean b3 = true;
System.out.println(b1 && b2);//b2=false이므로 false출력
System.out.println(b1 && b3);//둘다 true이므로 true출력
System.out.println(b1 || b2);//b1=true.하나만true면 true
System.out.println(b1 || b3);//서로 같으므로 false
System.out.println(b2 || b2);//같은 값으로 false
System.out.println(b1 ^ b3);//배타적 논리합: 서로다른값인 경우에만true-> false
System.out.println(b1 ^ b2);//서로다른값 -> true
System.out.println(!b1);//논리부정 : 연산자의 논리값을 바꿈. false 출력
❗❗배타적 논리합? 생각보다 헷갈리므로 주의!!
삼항연산자
- 조건식 ? 피연산자1 : 피연산자2
- => int a = (조건문)?true일때의 값 : false일때의 값
- 조건식의 연산결과가 true 이면, 결과는 피연산자 1이고, 조건식의 연산결과가 false 이면 결과는 피연산자2
- 피연산자1, 피연산자2 에는 주로 값이 오지만, 경우에 따라 연산식이 올 수 있다.
int b1 = (5>4) ? 50 : 40;
//조건식이 true이므로 b1은 50이 된다.
public class Main {
public static void main(String[] args) {
int a = (5 < 4) ? 50 : 40;
System.out.println(a);
}
}
❗깔끔해지긴 하지만 헷갈릴수 있으므로 자주 중복으로 사용하는 일은 자제 필요!
❗삼항 연산자가 익숙하지 않다면, if문으로 바꾸어 이용해도 좋다.
연산자 우선순위
int a = 5;
System.out.println(++a - 5);
//전위연산자인 ++이 먼저 계산
//즉 5(a)+1-5 = 1 출력
int a = 5;
System.out.println(a++ - 5);
//++이 후위연산자이므로 5(a)-5 한 후에 a++ 실행
System.out.println(a);
//마지막에 a++이 실행 되어 a+1 = 6
❗전위연산자와 후위 연산자가 조금 헷갈리니 주의하자!
'☕JAVA > 🔎 공부 [JAVA]' 카테고리의 다른 글
[JAVA] length() 메소드 문자열의 길이 구하기 (0) | 2022.08.06 |
---|---|
[JAVA] 삼항연산자 (0) | 2022.08.06 |
[JAVA] 조건문 - If문 (0) | 2022.08.06 |
[JAVA] 반복문 - for문 / 이중for문 / for(A:B) , for Each (0) | 2022.08.06 |
[JAVA] Scanner 스캐너 클래스와 입력 (0) | 2022.08.06 |