2011-12-16 5 views
-4

이 루프를 10에서 0으로 설정 한 값에서 감소 시키길 원합니다. 왜 계속 영원히 지속됩니까?For 루프가 영원히 계속됩니다

int lengthString = 10; 

for (int j = lengthString; lengthString > 0; j--) 
{ 
    cout << j; 
} 
+18

다시 살펴보십시오. 참으십시오. 힘을 사용하십시오. 생각한다. –

+0

하하하! 그게 최선의 해결책입니다. – mystycs

+8

Kerrek의 의견은 더 나은 프로그래머가되기위한 최선의 방법입니다. 규칙적으로 이런 일에 매달려서 스스로 찾아내는 법을 배우지 않는다면, 복잡한 일에 정말로 어려움을 겪을 것입니다. – Almo

답변

9

변경

for (int j = lengthString; j > 0; j--) 

lengthString

에 루프를 변경하지 않습니다. 또한

, 당신은 당신이 intj를 선언하는 경우, lengthString는 (실제 코드) 0보다 큰 있는지 확인하는 j음수로를 초기화하는 경우 때문에, 루프가 "영원히"실행 할 수 있습니다 (오버플로 될 때까지 0으로 다시 줄어들 때까지).

+1

와우! 나는 내가 그것을 완전히 놓쳤다라고 생각한다 기울어진다! !!!!!!! – mystycs

0

는 당신은 J를 감소시키는되지만, 루프 조건은 J 사용하지 않는

2

당신은 종료 조건이 lengthString > 0이며, lengthString는있는 거 루프에서 변경되지 않기 때문에 그냥, while(10 > 0) 말을하고있어 어떤 영원한 진리입니다.

나는 당신이 의미 믿습니다

for (int j = lengthString; j > 0; j--) 
0

그것은 당신이 더 큰 것보다, lengthstring하지에서 확인되는 J를해야한다. lengthString가> 0

int lengthString = 10; 

for (int j = lengthString; j > 0; j--) 
{ 
    cout << j; 
} 
1

루프는 J 및 검사를 감소 (; J> = 0; INT J = lengthString j--)

2

경우

for (int j = lengthString; j > 0; j--) 
+0

그의 질문은 10에서 0의 출력을 의미하므로,> 대신 =>를 표시합니다. – Scott

0

이 하나를 시도 :

for (int lengthString = 10, *j = &lengthString; lengthString > 0; lengthString--) 
{ 
    cout << *j; 
} 
+0

-1 흠 ... 왜? :) – debleek63

+0

Holy Obfuscated Code, Batman! – Almo

관련 문제