1

가능한 중복 :

사전 감량 대 사후 감산

++ i와 i ++의 차이점은 무엇입니까?

방금 깨달은 것입니다.

int i=0;
System.out.println(i++);

인쇄물대신에1. 나는 그것을 생각했다.나는증가되고 그 다음에 인쇄되었습니다. 그 반대가 일어나는 것 같습니다.

왜?

9 답변


12

이들은사전 및 사후 증가 연산자. 이 동작은 정확합니다.

  • i++원래 값을 반환합니다.
  • ++i새 값을 반환합니다.


2

할 때i++다음 명령까지 증분이 발생하지 않습니다. 게시물 증가라고합니다.


2

++i will print 1
i++ will print 0 


2

System.out.println(i++);

먼저 i의 값을 인쇄 한 다음 i를 증가시켜야합니다. 포스트 오더 증가.

  • i ++ -> 주문 증가
  • ++ i -> 사전 주문 증분


2

i++i를 반환하고 증분을 의미합니다. 그러므로 나는 ++ 후에.

++ii를 증가시킨 다음 돌아 오는 것을 의미합니다. 그러므로 i 앞에서 ++


1

  • i++=> 평가 후 증분;
  • ++i=> 증분 후 평가.

생각 해보세요.for루프 -i매 반복마다 증가합니다.


1

그만큼++변수가 사후 증가 작업을 정의한 후 즉, 줄의 다른 모든 항목을 실행 한 후에는i증가합니다. 네가 사용했다면++i변수는 인쇄되기 전에 증가됩니다.


1

여기서 찾을 수 있습니다.http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html두 개의 증분 연산자가 있습니다 : i ++ 및 ++ i. ++ 나는 당신이 생각한 것을 ++가 할 것입니다. i ++는 다른 목적을 위해 사용 후 값을 증가시킵니다 (자세한 내용은 링크 참조).


1

이 값은System.out.println(i++);처음 0이 지정되면 증가합니다. 당신이하려고한다면System.out.println(++i);그러면 당신에게 1이 표시 될 것입니다.

연결된 질문


관련된 질문

최근 질문