6-6 증감연산자

++

1만큼 증가

1) ++x -> 전이연산자 (x = x+1; 와 같음)

x = 10;

System.out.println("++x : " + (++x));

=>++x : 11

*연산하고 나서 출력이 된다.

 

2) x++ -> 후이연산자

x = 10;

System.out.println("x++ : " + (x++));

=> x++ : 10

System.out.println("x : " + (x));

=> x : 10

*x 값 그대로 출력을 먼저하고 더하게 된다. 메모리상태에만 11이 담겨 있다.

위에 명령어 영향으로 인해 밑에서의 x11로 출력이 된다.

--

1만큼 감소

1) --x -> 전이연산자 (x = x-1; 와 같음)

x = 10;

System.out.println("--x : " + (--x));

=>--x : 9

*연산하고 나서 출력이 된다.

 

2) x-- -> 후이연산자

x = 10;

System.out.println("x-- : " + (x--));

=> x-- : 10

System.out.println("x : " + (x));

=> x : 9

*x 값 그대로 출력을 먼저하고 더하게 된다. 메모리상태에만 9가 담겨 있다.

위에 명령어 영향으로 인해 밑에서의 x9로 출력이 된다.

 

 

6-7 논리연산자

-피연산자의 논리곱(AND), 논리합(OR), 논리부정(NOT)을 수행함

&&논리곱(AND)

a && b : ab가 모두 참이면 참

*&& : AND연산자

bootlean b1 = false;

bootlean b2 = true;

System.out.println("b1 && b2 : " + (b1 && b2));
b1 && b2 : false

*모두 참이어야 참

||논리합(OR)

a || b : ab중 하나라도 참이면 참

*|| : OR연산자

bootlean b1 = false;

bootlean b2 = true;

System.out.println("b1 || b2 : " + (b1 || b2));

=> b1||b2 : true

*둘중에 하나라도 참이면 참

!논리부정(NOT)

!a : a의 상태를 부정

* ! : NOT연산자

bootlean b1 = false;

bootlean b2 = true;

System.out.println("!b1 : " + !b1));

=> !b1 : true

System.out.println("!b2 : " + !b2));

=> !b1 : false

*참이면 거짓으로 거짓이면 참으로

 

실습

 

 

6-8 조건(삼항)연산자

-삼항 연산자로 두 개의 피연산자 연산 결과에 따라서 나머지 피연산자가 결정된다.

조건식? 1 : 2

조건식이 참이면 식1이 실행

조건식이 거짓이면 식2가 실행

)

x = 10; y=20;

int result = 0;

result = (x > y) ? 100 : 200;

//(x>y) -> 조건식, 100 -> 1, 200 -> 2

System.out.println("result : " + result);

=> result : 200

 

result = (x < y) ? 100 : 200;

System.out.println("result : " + result);

//(x<y) -> 조건식, 100 -> 1, 200 -> 2

=> result : 100

 

result = (x == y) ? 100 : 200;

System.out.println("result : " + result);

//(x==y) -> 조건식, 100 -> 1, 200 -> 2

=> result : 200

 

 

 

 

6-9 비트 연산자

-c계열에서는 많이 쓰이지만 자바에서는 메모리를 직접관리하지 않기 때문에

 

비트연산자는 많이 쓰이지 않는다.

-데이터를 비트(bit)단위로 환산하여 연산을 수행하며, 다른 연산자보다 연산 속도가 향상 된다.

 (우리가 느낄 수 없을 정도의 빠르기로 속도가 향상된다.)

&: AND 연산

a & b : ab가 모두 1이면 1

| : OR연산

a|b : ab중 하나라도 1이면 1

^: XOR연산

a^b : ab가 같지 않으면 1

 

연산원리

x = 2; //10진수를 2진수 비트단위로 환산시 00000010

y = 3; //10진수를 2진수 비트단위로 환산시 00000011

x=2

0

0

0

0

0

0

1

0

y=3

0

0

0

0

0

0

1

1

*환산한 숫자에서 xy를 나열하여 아래위로 10인지를 확인하여

연산(위에내용)을 하기처럼 한다.

&

0

0

0

0

0

0

1

0

|

0

0

0

0

0

0

1

1

^

0

0

0

0

0

0

0

1

 

)

System.out.println("x & y : " + (x & y));

=> 00000010 => x & y : 2

 

System.out.println("x ^ y : " + (x | y));

=> 00000011 => x ^ y : 3

 

System.out.println("x ^ y : " + (x ^ y));

=> 00000001 => x ^ y : 1

'신입개발자로 취업하기까지 > JAVA' 카테고리의 다른 글

20200309 8강 배열과 메모리  (0) 2020.06.14
20200306 7강 배열  (0) 2020.06.14
20200305 6강 연산자  (0) 2020.06.14
20200304 5강 특수문자와 서식 문자  (0) 2020.06.14
20200304 4-3강 형 변환  (0) 2020.06.14

+ Recent posts