자바 증감연산자 질문

자바 증감연산자 질문

작성일 2024.04.20댓글 5건
    게시물 수정 , 삭제는 로그인 필요

예를들어 x = 10; y = x++; z = y-- ; 이라할때 저는 두번째 식이 x=y, y=y+1이니까 y가 11이라 하고 세번째 식에서z=y, y=y-1이니까 z= 11 y가 1 감소해서 y=10 
즉 x=10, y=10, z=11이라고 계산했는데 이렇게 계산하는 방법이 맞나요? 챗지피티 답변이 부정확한거같아 질문합니다 


#자바 증감연산자 #자바 증감연산자 예제 #자바 for문 증감연산자

profile_image 익명 작성일 -

안녕하세요.

쉽게 설명드릴께요.

x = 10;

y = x++ + ++x;

이런 코드가 있다고 할때, 이 코드만 이해하시면 질문내용이 이해가 되실겁니다.

우선 연산을 하려고 하는데, 변수가 포함되어 있다면 연산전에 해당 변수의 값을 저 수식에 대입을 시켜야 합니다.

연산순서도 좌에서 우로 되겠지요.

그럼 먼저 x++ 부분을 수치화 해야 합니다. 여기에서 x++가 후위연산입니다.

그럼 x의 값이 먼저 수식에 대입이 된후 x++연산이 진행됩니다.

y = 10 + ++x;

이렇게 x++자리에 10이 대입이 되고, x++가 진행되면 x=11 이 됩니다.

다음 변수를 보면 ++x가 있습니다. ++x가 전위연산이므로 먼저 ++x를 수행하고 그 자리에 x값을 대치합니다.

현재 x가 11이므로 ++x를 하면 x=12가 됩니다.

y = 10 + 12;

그래서 y값은 22가 되지요. 이부분만 이해하시면 쉽습니다.

예를들어 x = 10; y = x++; z = y-- ; 이라할때 저는 두번째 식이 x=y, y=y+1이니까 y가 11이라 하고 세번째 식에서z=y, y=y-1이니까 z= 11 y가 1 감소해서 y=10

즉 x=10, y=10, z=11이라고 계산했는데 이렇게 계산하는 방법이 맞나요? 챗지피티 답변이 부정확한거같아 질문합니다

질문을 보면

x=10;

y=x++; 이므로, x++가 후위연산이므로

y=10; 이되고 x는 11이 됩니다.

z=y--; 를 수행하면, y--후위연산이므로

z=10; 이 되고, y--가 연산되어 y는 9가 되지요.

최종적으로 x=11, y=9, z=10 이 되지요.

그리고 질문에서

두번째 식이 x=y, y=y+1이니까 y가 11이라 하고 세번째 식에서z=y, y=y-1이니까 z= 11 y가 1 감소해서 y=10

이 부분이 이해가 안되서요.

x = 10; y = x++; z = y-- ;

이 코드를 풀어서 저렇게 나왔다는 것인지, 아니면 두번째 식이 따로 있다는건지는 잘 모르겠습니다.

x=y, y=y+1;

이부분을 위에 코드와 연계해서 진행을 해야한다면,

x=9; y=9+1;

이 되겠네요. x=9, y=10 이 되지요.

세번재 식도

z=y, y=y-1

위코드와 계속 연결한다면,

z=10, y=10-1

이 되므로 최종 x=9, y=9, z=10 이 되겠네요.

다른 부분이 궁금하시다면 질문 주세요~

profile_image 익명 작성일 -

예를들어 x = 10; y = x++; z = y-- ; 이라할때 저는 두번째 식이 y = x /* x==10; y==10*/; x=x+1 /* x==11 */ 세번째 식에서 z = y /* z==10 */; y= y - 1 /* y == 9 */ 즉 x=11, y=9, z=10이라고 계산했는데 이렇게 계산하는 방법이 맞아요.

profile_image 익명 작성일 -

x = 10;

y = x++; // y = 10, x = 11

z = y--; // z = 10, y = 9

x = 11, y = 9, z = 10

profile_image 익명 작성일 -

네, 당신이 계산한 방법은 부정확해요. 증감연산자는 변수의 값을 변경시키는 연산자인데요. x 10; y x++; 에서는 x의 값을 y에 대입한 후 x가 1 증가하겠죠. 그래서 x는 11이 되고 y는 10이에요. 그리고 z y--; 에서는 y의 값을 z에 대입한 후 y가 1 감소하겠죠. 따라서 최종적으로 x11, y9, z10이 되는거예요. 이렇게 이해해주시면 도움이 될 거에요. 계속해서 질문이 있으면 또 물어봐주세요! ?

profile_image 익명 작성일 -

네, 당신의 계산 방식은 맞습니다.

자바의 증감 연산자(++, --)는 다음과 같은 특징이 있습니다:

- x++는 x의 값을 먼저 사용한 뒤 x를 1 증가시킵니다.

- 즉, x=10; y=x++; 이 경우 y=10, x=11 입니다.

- y--는 y의 값을 먼저 사용한 뒤 y를 1 감소시킵니다.

- 즉, x=10; y=x++; z=y--; 일 경우:

1) x=10, y=x++이므로 y=10, x=11

2) z=y--이므로 z=10 (y의 값), y=9

따라서 당신의 계산 방식 x=10, y=10, z=11이 정답입니다.

챗지피티 답변이 잘못된 것 같습니다. 증감 연산자의 동작 방식을 정확히 이해하셨군요.

자바 증감연산자 질문합니다

증감연산자에 대해 어느정도 깨달았는데 변수가똑같은 경우 굉장히 헷갈리네요 1. int a =10 , b; b= a++ + ++a ; printf("%d",b); --> b=22 (a++(10) ++a(12)) 이건 이해했고 2....

자바 증감연산자 질문입니다.

변수 자신한테 후치형 증감연산자 사용하여 대입했을때 대입될 땐 변화 없는 값으로 들어가지만 후에 증가한 값으로 바뀌어야 할 거 같은데 값에 변화가 없어요....

자바 증감연산자 질문

... 챗지피티 답변이 부정확한거같아 질문합니다... 이해하시면 질문내용이 이해가 되실겁니다. 우선... 챗지피티 답변이 부정확한거같아 질문합니다 질문을 보면 x...

자바 증감연산자 질문드립니다.

... 결과값이 x=7 ,y=-1이라는데 후치연산자에 대한 개념이 부족해서 이해가 잘 안됩니다. 혹시 자세하게 설명 좀 해주실 수 있나요..? int x =1, y=6; while(y-->0)...

자바 증감연산자 질문입니다!

아래 세가지 사진에 대해 질문드립니다. 위 사진에서 두번째 b+=5; 는 오류가 안나는 이유가 뭘까요? 6번째 문장이 오류가 나면 두번째 문장도 오류가...

자바 증감연산자 질문이요

... 우선 a++와 같이 뒤에 ++ 연산자가 붙는 것을 후위 증감 연산자라고 합니다. a-- 도 가능하며 전위 연산자의 경우에는 ++a 와 같이 쓰게 됩니다. 여기서 중요한것은...

자바 증감연산자 질문이요

... 않는걸까요 증감연산자의 위치에 따라 동작이 달라 집니다. 앞에 있는 경우 증감을 먼저 한 후 해당 println을 하는 것이고 뒤에 있는...

자바 증감연산자 질문입니다..

... 질문자께서 생각하는 답이 되려면 int a = 1 , b = 1+ a++ , c = a-b; 이와같이... 선 증가연산자는 먼저 증가가되고 나중에 연산이됩니다. 따라서 a를 출력시 a는...

자바 증감연산자 질문~~

... 지금 j = j++;을 하였기때문에 정상적이라면 j에 j+1을 한 값이 후증감으로 들어가야하지만... j++은 0이고 j는 후증감이 된 상태에서 j에 다시 0을 대입하게...



    test ad