이 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
- a = a + 1;
- 반환 a;
a ++
- 온도 = a;
- a = a + 1;
- 반환 온도;
답변
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을 얻습니다.
답변
++a
a
평가되기 전에 증가 합니다.
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!