For循环设置变量条件
问题描述:
我for循环中的计数器变量在第一次进入循环时被设置为条件的值。我从来没有听说过这种情况发生,我在一个月前在这个系统上写了一个非常相似的代码版本,并没有这个问题。For循环设置变量条件
这是由Microsoft Visual Studio 6.0 Visual C++在64位Windows Vista计算机上编译和构建的。我已经注释掉了所有不必要的代码,并且仍然导致了此错误。该代码,并移除所有评论低于:
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
谢谢你的想法。
答
你必须在你的for语句结束分号:
for(currentTrack; currentTrack < totalNumberOfTracksToRun; currentTrack++);
// get rid of this ---^
这意味着for循环运行,无所事事,直到currentTrack
等于totalNumberOfTracksToRun
,然后才执行下面的块。这就是为什么它看起来currentTrack
也瞬间暴涨到5
答
你有一个流浪;
:
for(currentTrack; currentTrack < totalNumberOfTracksToRun; currentTrack++);
// |
// here
这意味着for
直到它才去到下一行到达totalNumberOfTracksToRun
只会增加currentTrack
。