도블

ㅠㅠ

5분 10초부터 못알아듣겠어요.. 왜 아이삼이 6이 되는건지ㅜㅜ

2 개의 답변
정찬형

증감 연산자에 대해서 헷갈리시는 거같네요.
증감 연산자는 연산자가 변수의 앞, 뒤 어디에 붙는지에 따라 순서가 바뀝니다.
전위 증감 연산자(++변수, --변수)의 경우 코드가 실행되기 전 값을 증감,
후위 증감 연산자(변수++, 변수--)의 경우 코드가 실행된 후 값을 증감합니다.

    // i3의 초기값은 5;
    int i4 = ++i3; // 코드 실행 전 i3 증가, 결과는 i4 = 6, i3 = 6
    int i5 = i3++; // 코드 실행 후 i3 증가, 결과는 i5 = 6, i3 = 7
    int i6 = --i3; // 코드 실행 전 i3 감소, 결과는 i6 = 6, i3 = 6
    int i7 = i3--; // 코드 실행 후 i3 감소, 결과는 i7 = 6, i3 = 5

int i4 = ++i3;
이 코드를 자세히 설명하자면 i4에 i3의 값이 들어가기전 전위 증가 연산자에 의해 i3의 값이 5에서 6으로 증가한 뒤, i4에 i3의 값이 들어가는 것이죠.

  • rrg985
    같은 알파벳을 쓰더라도 (물론 아예같지는 않지만) 스페인어와 영어가 읽는 방법이 다른것에 비유가 될듯하네요 ― rrg985 2017.8.18 11:24
  • 서민수
    그렇다면 대체 이 공식은 무엇을 위해 존재하는 거죠...마치 인터스텔라를 보는 것 같습니다, ― 서민수 2017.8.18 11:24
  • 서민수
    그럼 i5 = i3++; 에서부터 = 이 들어가면 안되는 거 아닌가염? 값이 다른데 어떻게 같다고 표현이 될 수 있죠...22년 동안 알던 연산공식이 붕괴되고 있습니다... ― 서민수 2017.8.18 11:24
김윤호

=은 대입연산자이고 ==이 비교연산자 입니다. 수학공식과 다릅니다. java를 만드신분이 수학공식과 비슷하게 만들었을뿐이니 붕괴하지 마시길...
둘은 완전 틀린 개체라고 생각하시는게 맞는듯 합니다.

i5 = i3++; 는
i3을 증감하고 그 값을 i5에 대입해라 라는 식입니다.
i5 == i3++;
이렇게 해야 서로 같은지 비교하는 연산자 입니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.