비교연산자
두개의 값을 서로 비교하기 위한 연산자들
> 크다
< 작다
>= 크거나 같다
<= 작거나 같다
== 같다
!= 같지않다
크거나 같은지 판별하기 위해서는 공백없이 > 기호와 =를 붙여서 사용해야 하고 순서도 바꾸지 말아야 합니다.
> = 이렇게 공백을 포함시키면 동작하지 않습니다. 또, 순서를 바꾸어도 => 동작하지 않습니다.
정해진대로 >= 이렇게 사용해야 합니다. 작거나 같은 물어 볼때도 마찬가지로 정해진대로 <= 이렇게 사용해야 합니다.
또, 두개의 값이 서로 같은 판별할때는 = 하나를 사용하면 같은지 물어볼수 없고 == 을 사용해야 합니다.
이때도 공백없이 ==을 사용해야 합니다. = = 공백이 있으면 동작하지 않습니다.
이러한 비교연산의 결과는 boolean 자료형입니다. 그래서 이러한 비교연산자는 보통 어떠한 조건식에 따라 동작시켜야 할 문장이 달라질때 사용하는 선택문의 조건식에서 주로 사용됩니다.
논리연산자
&& 논리곱 두개의 조건식을 모두 만족하는 판별하고자 할 때 사용합니다.
|| 논리합 두개의 조건식중에 하나라도 만족하는지 판별하고자 할 때 사용합니다.
논리연산자도 비교연산자와 마찬가지로 선택문의 조건식에 주로 사용합니다. 만약 판별해야 하는 조건식이 2개 이상일때에는 논리곱(&&), 논리합(||)을 사용합니다.
두개의 조건식이 모두 만족하는지 판별해야 하는 경우에는 논리곱(&&)연산자를 사용하고 두개의 조건식 중에 하나라도 만족하는지 판별해야 하는 경우라면 논리합(||)연산자를 사용합니다.
ex)
if( 조건식1 && 조건식2 )
if( 조건식1 || 조건식2 )
비트연산자
비트의 상태(2진수의 상태, 즉 0과 1로 구성된 상태)에서 수행하는 연산자 입니다.
& 비트곱 두개의 비트가 모두 1이면 1 그렇지 않으면 0이 됩니다.
| 비트합 두개의 비트중에 하나라도 1이면 1 그렇지 않으면 0이 됩니다.
^ 비트차 두개의 비트가 서로 다르면 1 그렇지 않으면 0이 됩니다.
x y x&y x|y x^y
----------------------------------
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
비트연산자 중에 비트곱(&)과 비트합(|)은 논리연산자로도 사용할 수 있습니다.
논리연산자(&&)와 비트연산자(&) 모두 두개의 조건식을 모두 만족하는지 판별하는 용도로 사용할 수 있습니다.
그러나 논리연산자(&&)는 비트연산자(&)보다는 짧은 연산을 수행합니다. 두개의 조건식을 모두 만족해야만 전체를 참으로 처리하는 연산이기 때문에 논리연산자(&&)는 만약 첫번째 조건식이 거짓이라면 두번째 조건식은 수행하지 않습니다. &&, || 를 short cut operator라고 합니다.
&&는 앞의 조건식이 거짓이면 뒤에 있는 조건식을 수행하지 않으며, ||는 앞의 조건식이 참이면 뒤에 있는 조건식을 수행하지 않습니다.
비트 이동 연산자 (Shift 연산자)
비트에 상태에서 각각의 비트를 이동시키는 연산자 입니다.
<< 비트를 왼쪽으로 이동시키는 연산자입니다. 왼쪽으로 1비트 이동시킬때 마다 *2한 결과가 됩니다.
>> 비트를 오른쪽으로 이동시키는 연산자입니다. 오른쪽으로 1비트 이동시킬때 마다 /2한 결과가 됩니다.
0 0 0 0 0 1 0 0 : 4
---------------------------
0 0 0 0 1 0 0 0 : 4 << 1 ==> 8
비트이동 연산자 중에 다음과 같이 오른쪽으로 >>> 연산자가 있습니다.
왼쪽으로 가는 <<< 연산자는 없습니다.
>>>은 무작위수(난수, 임의의수 아무거나 만들때에) 음수이던, 양수이던 무조건 새로 채워지는 비트를 0으로 채워 양수를 만느는 용도로 자주 사용됩니다. >>>을 수행한 결과를 예측하는 것은 의미가 없고 임의의 무작위 수를 만들어 무조건 양수 만드는 용도로 사용됩니다.
삼항연산자(조건식연산자)
(항1)?항2:항2
항1에는 조건식이 오며 만약 항1의 조건식이 true이면 항2를 수행하고 만약 항1의 조건식이 false이면 항3을 수행합니다.
항이 3개이 있어 삼항식연산자라고도 하고 연산자에 조건식이 있다하여 조건식연산자라고도 합니다.
짧은(간단한) if else 줄여놓은 표현입니다.
ex)
int a = 5;
int b = (a>0)?100:0;
System.out.println(b); //100
삼항연산자를 출력문 안에 넣을수도 있습니다
int data = 5;
System.out.println( (data>0)?"OK":"NO" ); //OK
복합 치환 연산자
변수에 연산을 수행하여 그 결과를 다시 변수에 대입하는 연산자들입니다.
+=
-=
*=
/=
%=
>>=
<<=
int a = 5;
a *= 2;
이것은 a= a *2를 의미합니다.
System.out.println(a); //10
int b = 5;
b -= 3;
System.out.println(b); //2
'프로그래밍 공부 정리 > java' 카테고리의 다른 글
선택문: switch case문 (0) | 2021.10.13 |
---|---|
선택문 : if문 (0) | 2021.10.12 |
오류의 종류, 이름 작성의 규칙, 주석문 (0) | 2021.10.11 |
변수와 자료형 그리고 연산자(1/2) (0) | 2021.10.09 |
코딩의 시작, 자바를 설치하고 준비를 해봅시다 (0) | 2021.10.08 |