[JAVA] 단항연산자 문제풀이

JoJo·2023년 7월 11일
0
post-custom-banner

💡 문제 1.

정수형 변수 a, b, c 3개를 만든 후 각각 10, 20, 30을 입력받아, 다음 연산을 수행하는 식을 작성하고, a, b, c의 결과값을 출력하세요.


✔️ 소스코드

[문제]

int a = 10;
int b = 20;
int c = 30;

a++;
b = (--a) + b;
c = (a++) + (--b);

[풀이]

a++;
// a = 11, b = 20, c = 30

b = (--a) + b;
// a = 10, b = 30, c = 30

c = (a++) + (--b);
// a = 11, b = 29, c = 39
// a++ 이지만 후위 연산자이기 때문에 해당 시점에선 아직 10으로 계산되어서 39가 된다.

정답 : a = 11, b = 29, c = 39



💡 문제 2.

논리형 변수 flag를 true 초기화 하고 다음 연산을 수행한 뒤 결과값을 확인해보세요.


✔️ 소스코드

[문제]

!!!!flag

[풀이]

true 로 초기화 했기 때문에 현재 값은 true 이고, 
! 는 부정연산자이기 때문에 !flag 는 false 가 된다.

때문에, ! 부정연산자를 사용할때마다 결과값이 바뀌고,4번 사용했기 때문에 결과값은 true 가 된다.

정답 : true



💡 문제 3.

정수형 변수 x = 100, y = 33, z = 0 초기화 후에 다음 연산수행 후 x, y, z를 출력하세요.


✔️ 소스코드

[문제]

int x = 100;
int y = 33;
int z = 0;

x--;
z = x-- + --y;
x = 99 + x++ + x;
y = y-- + y + ++y;

[풀이]

x--;
// x = 99, y = 33, z = 0

z = x-- + --y;
// x = 98 y = 32, z = 131
// x-- 는 후위 연산자 이기 때문에 해당 계산식에서 계산할때에는 99로 계산한다.

x = 99 + x++ + x;
// x = 296, y = 32, z = 131
// x++ 는 후위 연산자이기 때문에 x++ 에선 기존 값 98로 계산되지만, 
// 이후 x 값은 99로 계산된다.

y = y-- + y + ++y;
// x = 296, y = 95, z = 131
// y-- 후위 연산자기이때문에 32로 계산되고, y 는 후위 연산되어 31, 
// ++y는 전위연산자기때문에 32로 계산된다.

정답 : x = 296, y = 95, z = 131 
profile
꾸준히
post-custom-banner

0개의 댓글