F.R.I.D.A.Y.

VS ERROR C6292 : for 루프가 잘못 정의되었습니다. 최대값부터 위로 계산됩니다. 본문

DEV/Tip

VS ERROR C6292 : for 루프가 잘못 정의되었습니다. 최대값부터 위로 계산됩니다.

F.R.I.D.A.Y. 2019. 4. 27. 23:56
반응형

 오늘 시간에는 for 사용시 잘못 사용할 때 2019인텔리센스가 제공하는 C6292 경고를 살펴봅니다. C6293 경고는 이곳을 참고하세요.

 그나저나 이젠 이런 것도 경고를 해주네요 :)


원인. 조건식에 맞지 않는 증감식

 원인이 되었던 코드는 다음과 같습니다.

	for (int i = 100; i > 0; ++i) {

	}

 코드상에선 i값이 작아져야하지만 계속해서 증가하고 있습니다. 물론 오버플로우가 발생하면 멈추겠지만 제대로 된 결과가 나올리는 없습니다.


해결1. 증감식 수정

  이 경고는 증감식을 수정하거나 조건식을 수정하는 방법으로 제거할 수 있습니다. 그러나 일반적으로는 조건식에 맞추어 코드를 작성하고 증감식을 틀린 경우가 많습니다.

	for (int i = 100; i > 0; --i) {

	}

 코드에 맞게 증감식을 제대로 수정해주었습니다.

 


해결2. 조건식 수정

 혹은 증감식을 그대로 둔 채 초기화, 조건식을 수정해도 되겠죠.

	for (int i = 1; i <= 100; ++i) {

	}

 100부터 시작하므로 100이 끝이 나오도록 수정했습니다. i가 0이면 나가므로 i값을 1부터 시작했습니다.

728x90
반응형
Comments