[java] Java에서 사후 증가 (i ++) 및 사전 증가 (++ i) 연산자는 어떻게 작동합니까?

이 Java 코드의 출력을 설명해 주시겠습니까?

int a=5,i;

i=++a + ++a + a++;
i=a++ + ++a + ++a;
a=++a + ++a + a++;

System.out.println(a);
System.out.println(i);

두 경우 모두 출력은 20입니다.



답변

도움이 되나요?

a = 5;
i=++a + ++a + a++; =>
i=6 + 7 + 7; (a=8)

a = 5;
i=a++ + ++a + ++a; =>
i=5 + 7 + 8; (a=8)

요점은 ++a값 을 증가시키고 즉시 반환한다는 것입니다.

a++ 또한 값을 증가 시키지만 (백그라운드에서) 변수의 변경되지 않은 값을 반환합니다. 나중에 실행되는 것처럼 보입니다.


답변

++a증분하고 변수를 사용합니다.
a++변수를 사용한 다음 증분합니다.

당신이 가지고 있다면

a = 1;

그리고 당신은

System.out.println(a++); //You will see 1

//Now a is 2

System.out.println(++a); //You will see 3

codaddict는 특정 스 니펫을 설명 합니다.


답변

두 경우 모두 먼저 값을 계산하지만 사후 증분에서는 이전 값을 유지하고 계산 후 반환합니다.

++ a

  1. a = a + 1;
  2. 반환 a;

a ++

  1. 온도 = a;
  2. a = a + 1;
  3. 반환 온도;

답변

i = ++a + ++a + a++;

이다

i = 6 + 7 + 7

Working : a에서 6까지 증가 (현재 값 6) + a에서 7까지 증가 (현재 값 7). 합계는 이제 13입니다. a (= 7)의 현재 값에 더한 다음 a를 8로 증가시킵니다. 합계는 20이고 할당 완료 후 a의 값은 8입니다.

i = a++ + ++a + ++a;

이다

i = 5 + 7 + 8

Working : a의 시작 값은 5입니다. 덧셈에 사용하고 6 (현재 값 6)으로 증가시킵니다. +의 다른 피연산자를 얻으려면 a를 현재 값 6에서 7로 증가시킵니다. 합계는 12이고 a의 현재 값은 7입니다. 다음으로 a를 7에서 8까지 증가시키고 (현재 값 = 8) 이전 합계 12에 더하여 20을 얻습니다.


답변

++aa평가되기 전에 증가 합니다.
a++평가 a하고 증분합니다.

주어진 표현과 관련 :

i = ((++a) + (++a) + (a++)) == ((6) + (7) + (7)); // a is 8 at the end
i = ((a++) + (++a) + (++a)) == ((5) + (7) + (8)); // a is 8 at the end

위에서 사용한 괄호는 Java에서 암시 적으로 사용됩니다. 이런 식으로 용어를 살펴보면 쉽게 알 수 있습니다. 둘 다 교환 적이므로 동일합니다.


답변

위의 예에서

int a = 5,i;

i=++a + ++a + a++;        //Ans: i = 6 + 7 + 7 = 20 then a = 8 

i=a++ + ++a + ++a;        //Ans: i = 8 + 10 + 11 = 29 then a = 11

a=++a + ++a + a++;        //Ans: a = 12 + 13 + 13 = 38

System.out.println(a);    //Ans: a = 38

System.out.println(i);    //Ans: i = 29


답변

++ a는 접두사 증가 연산자입니다.

  • 결과가 먼저 계산되고 저장됩니다.
  • 그런 다음 변수가 사용됩니다.

a ++는 후위 증분 연산자입니다.

  • 변수가 먼저 사용됩니다.
  • 그런 다음 결과가 계산되고 저장됩니다.

규칙을 기억하면 모든 것을 계산할 수 있도록 EZ!