2012-11-18 3 views
1

for 루프의 카운터 변수는 처음 루프에 들어갈 때 조건 값으로 설정됩니다. 나는 이런 일에 대해 들어 보지 못했고, 한달 전에 이와 비슷한 코드를 이와 비슷한 시스템에 작성했으며,이 문제는 없었습니다.루프 설정 조건 변수

이것은 64 비트 Windows Vista 컴퓨터에서 Microsoft Visual Studio 6.0 Visual C++에 의해 컴파일 및 빌드됩니다. 불필요한 코드를 모두 주석 처리했으며 여전히이 오류가 발생했습니다. 제거 된 모든 의견 코드는 다음과 같습니다 :

MAIN.CPP :

#include "stdafx.h" 

using namespace std; 

int main(int argc, char* argv[]) 
{ 

cout<<"Simple Watch Region Test\n"; 
cout<<"-----------------------\n"; 

//get number of tracks 
cout<<" Enter Number of Tracks to Run: "; 
unsigned int totalNumberOfTracksToRun; 
cin>>totalNumberOfTracksToRun; 

unsigned short currentTrack = 0; 
cout<<"currentTrack starts at "<<currentTrack<<endl; 

for(currentTrack; currentTrack < totalNumberOfTracksToRun; currentTrack++); 
{ 

    cout<<"current is "<<currentTrack<<endl; 

    } 

    return 0; 

}

에 stdafx.h :

#if !defined(AFX_STDAFX_H__9455C912_1697_486F_A680_AAE1D0B22611__INCLUDED_) 
#define AFX_STDAFX_H__9455C912_1697_486F_A680_AAE1D0B22611__INCLUDED_ 

#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 

#include <iostream> 
#include <fstream> 
#include <math.h> 
#include <string> 

그리고 출력은 다음과 같습니다

Simple Watch Region Test 
----------------------- 
    Enter Number of Tracks to run: 5 
currentTrack starts at 0 
current is 5 
Press Any Key to continue 

의견을 보내 주셔서 감사합니다. currentTracktotalNumberOfTracksToRun 동일하게 만 다음 실행 다음 블록이 될 때까지,

for(currentTrack; currentTrack < totalNumberOfTracksToRun; currentTrack++); 
                // get rid of this ---^ 

그것은 아무것도하지 않고 루프가 실행에 대한 의미 :

답변

5

당신은 문에 대한 당신의 끝에 세미콜론이있다.

for(currentTrack; currentTrack < totalNumberOfTracksToRun; currentTrack++); 
//                   | 
//                  here 

for는 다음 라인에 가기 전에 totalNumberOfTracksToRun에 도달 할 때까지 만 currentTrack을 증가 의미 : 이것은 currentTrack 즉시 5

4

에 뛰어 것으로 보인다 왜 당신은 길 잃은 ;을 가지고있다.