자바 연산자 정리
연산기호 방향 결합방향 우선순위
[] , . -> 1
expr++, expr-- <- 2
++expr, --expr, +expr, -expr, ~, !, (type) <- 3
*, /, % -> 4
+, - -> 5
<<, >>, >>> -> 6
<, >, <=, >=, instanceof -> 7
=, != -> 8
& -> 9
^ -> 10
| -> 11
&& -> 12
|| -> 13
?expr : expr <- 14
=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= <- 15
이중 15번에 있는 것들은 복합대입연산자로 사용된다
ex)
A += B---> A= A + B
A -= B ---> A = A - B
short num = 10;
num = (short)(num + 77L)
short num = 10;
num = (short)(num + 77L);
int rate =3;
rate = (int)(rate * 3.5);
System.out.println(num);
System.out.println(rate);
int num = 10;
num += 77L;
int rate = 3;
rate *= 3.5;
System.out.println(num);
System.out.println(rate);
---> 동일한 결과가 나오나 복합대입연사자를 활용 시 형변환을 할 필요가 없다-->그래서 오히려 조심히 사용해야 함
관계연산자
< 작다
> 크다
<= 작거나 같다
>= 크거나 같다
== 같다
!= 다르다
&& = and
|| = or
! = not
관계연산자 사용 예시
int num1 = 11;
int num2 = 22;
boolean result;
// 이런 것도 띄어쓰는 습관 들이기
result = (1 < num1) && (num1 < 100);
System.out.println("1 초과 100 미만인가? " + result);
result = ((num2 % 2) ==0) || ((num2 % 3) == 0);
System.out.println("2 또는 3의 배수인가? " + result);
result = !(num1 != 0);
System.out.println("0 인가? " + result);
1 초과 100 미만인가? true
2 또는 3의 배수인가? true
0 인가? false
-----> 마지막은 num1 =0이 아니다 + 밖에 아니다가 하나 더 있으니 맞다로 바뀌어서 FALSE가 나오는 것
-----> 숫자 % (아무숫자) == 0 --> 아무숫자의 배수임을 표현할 수 있다