20240808수업
[연산자 - operator]
피연산자(operand) 갯수에 따른 분류
🐲 단항 연산자 - unary
!, ~, . , ++, --
a = 3;
b = -a; // 부호변환, 단항연산자
🐲 이항 연산자 - binary
정상문법)
{a = 4;
a = a - 1;}
틀린 문법)
{a = 4;
a = a - ;}
🐲 삼항연산자(조건연산자) - thrnary
String result = (man == true)? "남자":"여자";
String result = (man)? "남자":"여자"; '='을 생략가능
x = (a>0)? true:false;
if(a>0)
x = true;
else
x = false;
1) if(man == true)
s = "남자";
else
s = "여자";
if( man )
s = "남자";
else
s = "여자";
조건 연산자 -> if대체
2) (man == true) ? s="남자" : s="여자" ;
3) s = (man == true) ? "남자" : "여자" ;
if n=0;
if(n>0)
if(n>5)
x=3;
들여쓰기 :indentation
-----------------------------------------------------------
🐲 계산연산자(산술) - arithmatic
0) ++, -- : 증감연산자 - 단항연산자
a++ : 후행(postfix, suffix)연산자 : a = a + 1
++a : 선행(prefix)연산자 : a = a + 1
a = 3 a = 3
b = a++ b = ++a (코딩테스트 같은곳에서는 자제)
…………………………………………………………………
a = 3 a = 3
b = a a = a + 1
a = a + 1 b = a
a = 4 a = 4
b = 3 b = 4
1) *, /, %
2) +, -
----------------------------------------------------------------------
🐲 비교연산자(관계) - relative
값을 비교 - 결과 true / false
> 크다 (초과)
< 작다 (미만)
<= 작거나 같다 (이하)
>= 크거나 같다 (이상)
== 같다
!= 같지않다
"이이" > "이순신" : 문자열비교의미 ->순서(이이가 뒤에 나오기 때문에(국어맞춤법규정상) 숫자가 더큼)
※but)관계연산자:자바에서는 문자열 비교에 사용할 수 없음.(정수 실수만 비교가능∵데이터가 저장된 위치를 담기때문에 데이터 값을 비교하고자 할때는 특수 함수 사용)
문자열 비교 : 함수 사용
String name = "이순신"
== -> name.equals("이이") : true/false
name.compareTo("이이") : 결과가 숫자로 나옴.
결과 : 0 (name == "이이")
>0 (name > "이이")
<0 (name < "이이")
-1 = "AA".compareTo("AC");
A A
A B
0 -2
name = "ABC"
name.compareTo("AB") :
ABC
AB
논리식- 1:true , 0:false
a !a
0 1
1 0
-----------------------------------
int : 0 4byte
double: 0.0 8byte
0 == 0.0 -> type이 달라서 비교가 안된다
비교를 위해서 type을 강제로 변경
0.0 == 0.0 : true
자바스크립트 :
0 == 0.0 : true 데이터를 비교
0 === 0.0 : false데이터와 타입까지 비교
{비교를 위해 정수에서 실수로 변환하기}
자동변환) implict 암시적,묵시적: 0을 0.0으로 type 변환(
강제형변환) explicit 명시적: (type) => casting 연산자
ex) (double) 0 == 0.0
>> 0.0 == 0.0
범위비교
0 ~ 100 사이
0 <= x <= 100 -> error
0 <= x&& x <= 100
논리 and (&&)
-------------------------------------------
🐲 논리연산자 - logical : 여러개의 조건을 동시 연결 수행
boolean man = false
if(man)
"남자"
else
"여자"
if(!man)
"여자"
else
"여자아님"
1) ! (not)
2) &&, & (and) - 두 조건 의 공통 부분 추출(교집합) -and
~ 중에서, ~이고
&&:앞쪽 결과가 0(false)면 뒤쪽연산을 하지않고 결과를 0으로 만들어줌(곱셈으로 생각)->속도↑
& :앞쪽 결과에 상관없이 뒤쪽연산을 하여 결과 출력
ex)x=0, y=2
z=x++ && ++y
x=1,y=2,z=0
x=0, y=2
z=x++ & ++y
x=1,y=3,z=0
-><-java에서는 논리연산시 ++사용금지
3) ||, | (or) - 두 조건의 합집합 - or
~ 이거나, ~또는
부산 여자
addr1 == "부산"
&& gender == '여'
우선순위 : ! -> && -> ||
-------------------------------------------
🐲 비트연산자 (bit 연산자)-애플리케이션 개발에는 잘 쓰이지 않음.
- :모든 데이터 이진수로 변경하여 비트끼리 비교한다.
~ : bit not
& : bit and :두 조건 의 공통 부분 추출(교집합) -and
~ 중에서, ~이고
^ : bit xor : 두값이 다르면 결과 1, 같으면 0
| : bit or :두 조건의 합집합 - or
~ 이거나, ~또는
a = 3
b = ~a : -4
{비트 and - 특정bit값만 추출하는 방법: bit masking}
0101 0011
& 0001 0000
0001 0000 : 사운드 카드 설치됨
0000 0000 : 사운드 카드 설치 안됨
s
a 0000 0011 : 3
~a 1111 1100 : bit not -4
1111 1101 : -3
1111 1110 : -2
1111 1111 : -1
a 0100 0001 : 65 == 'A' 0x41
& 0100 0000 : 0x40
0100 0000 : 0x40
^
a 1001 0001 :
& 0100 0000 : 0x40
0000 0000 : 0x00
bit masking
a & 0x40
0x40 - 해당비트가 1
0x00 - 해당비트가 0
| : or, vertical bar
그래픽에서 비트연산자 사용하는 예제
https://blog.naver.com/lagrange0115/222653039029
논리식 - 0: false, 1: true
논리게이트
a b && ^ ||
0 0 0 1 0
0 1 0 0 1
1 0 0 0 1
1 1 1 1 1
🐲 비트 shift 연산자
a << 3
s
a 0000 0011 3
a<<3 0000001 1000 24 = 3 * 2의3승
a >> 2
s
0001 1000
sss0 0011 000 : 추가되는 숫자 s는 부호비트가 들어옴
a >>> 2
s
0001 1000
0000 0011 000 : 추가되는 숫자는 무조건 0
-------------------------------------------------------------------------
🐲 대입연산자(assingment) -속도변화x just한줄 줄이기용, 단항연산자만 가능
= a = 3
+= a += 3 ; a = a + 3;
-= a -= 3; a = a - 3;
*=
/=
%=
&=
|=
'JAVA' 카테고리의 다른 글
[java]성적 처리 프로그램 (Scanner사용) (0) | 2024.08.10 |
---|---|
[java]-if문(조건 연산자),논리 연산자 처리 (0) | 2024.08.10 |
[java] java programming예제 (0) | 2024.08.08 |
[java]변수와 type (0) | 2024.08.07 |
[java]Hello World! (0) | 2024.08.07 |