2014-05-21 3 views
0

인 경우 코드가 있지만 if 조건이 건너 뛰고 실행 중일 때도 실행되지 않습니다.조건을 건너 뛰는 문이

for(int i = 13;i<anarray.length;i++) 
    if(i == 13) 
    { 
     for(w = i;w>12;w--) 
     { 
     if(anarray[w] > 0)  //the program skips this line completely even though the element is greater than 0 
     { 
      //do some adding 
     } 
     if(anarray[w] < 0) 
     { 
      //do some other adding 
     } 
     } 
    } 

다음 사진은 도움이 될 것입니다 :

디버그 1 : enter image description here

디버그 2 : enter image description here

디버그 3 : enter image description here

다음과 같이 간단한 용어에서 내 코드입니다

디버그 4 : enter image description here

+3

을했던 것처럼 그것이에 그것을 켜려면'=='와 같은'경우 (내가 == 13)', 그것은의 원인은 아니지만 당신의 버그/오류 – Habib

+1

@ 하빕 나중에, 미안. 나는 서둘러서 타이핑하는 중이었습니다.하지만 당신이 옳습니다. 코드의 버그가 아닙니다. – user1681664

+0

왜 그것이 건너 뛰었을 것이라고 생각합니까? –

답변

2

귀하의 문제는

for(int w= m_RSISSteps - 1; w > m_RSISteps - 1; w--) 

에서 그냥 그렇게 < 검사가 false로 평가하고 for 루프는 결코 실행되지 않습니다 m_RSISteps - 1 동일하게 w을 정의합니다. 아마도 수표를 수정해야하며 아마도 w >= 0을 사용하거나 m_RSISteps이 아닌 다른 변수를 사용해야합니다.

은 "간단한 예"당신은 당신이 필요로하는

for(int i = 12;i<anarray.length;i++) //These should be 12 not 13 based off of your images. 
    if(i == 12) 
    { 
     for(w = 12;w>12;w--) //HERE 
     { 
     if(anarray[w] > 0)  //the program skips this line completely even though the element is greater than 0 
     { 
      //do some adding 
     } 
     if(anarray[w] < 0) 
     { 
      //do some other adding 
     } 
     } 
    } 
+0

당신은 신의 망할 천재입니다. 감사 – user1681664