이 루프를 10에서 0으로 설정 한 값에서 감소 시키길 원합니다. 왜 계속 영원히 지속됩니까?For 루프가 영원히 계속됩니다
int lengthString = 10;
for (int j = lengthString; lengthString > 0; j--)
{
cout << j;
}
이 루프를 10에서 0으로 설정 한 값에서 감소 시키길 원합니다. 왜 계속 영원히 지속됩니까?For 루프가 영원히 계속됩니다
int lengthString = 10;
for (int j = lengthString; lengthString > 0; j--)
{
cout << j;
}
변경
for (int j = lengthString; j > 0; j--)
lengthString
, 당신은 당신이 int
로 j
를 선언하는 경우, lengthString
는 (실제 코드) 0보다 큰 있는지 확인하는 j
이 음수로를 초기화하는 경우 때문에, 루프가 "영원히"실행 할 수 있습니다 (오버플로 될 때까지 0으로 다시 줄어들 때까지).
와우! 나는 내가 그것을 완전히 놓쳤다라고 생각한다 기울어진다! !!!!!!! – mystycs
는 당신은 J를 감소시키는되지만, 루프 조건은 J 사용하지 않는
당신은 종료 조건이 lengthString > 0
이며, lengthString는있는 거 루프에서 변경되지 않기 때문에 그냥, while(10 > 0)
말을하고있어 어떤 영원한 진리입니다.
나는 당신이 의미 믿습니다
이for (int j = lengthString; j > 0; j--)
그것은 당신이 더 큰 것보다, lengthstring하지에서 확인되는 J를해야한다. lengthString가> 0
int lengthString = 10;
for (int j = lengthString; j > 0; j--)
{
cout << j;
}
루프는 J 및 검사를 감소 (; J> = 0; INT J = lengthString j--)
다시 살펴보십시오. 참으십시오. 힘을 사용하십시오. 생각한다. –
하하하! 그게 최선의 해결책입니다. – mystycs
Kerrek의 의견은 더 나은 프로그래머가되기위한 최선의 방법입니다. 규칙적으로 이런 일에 매달려서 스스로 찾아내는 법을 배우지 않는다면, 복잡한 일에 정말로 어려움을 겪을 것입니다. – Almo