我已经将while循环转换为for循环。我遇到的问题是while循环按预期工作,但是在编译时for循环会导致无限循环。任何帮助都会很棒!
int y1 = 1776;
int y2 = 2008;
while(y1 <= y2){
++ y1;
if( (y1%400==0 || y1%100!=0) &&(y1%4==0))
cout << y1 <<" "<< "Is a Leap Year" << " ";
}
cout <<"Now with a for loop" << endl;
for(y1 <= y2; ++ y1;)
{
if( (y1%400==0 || y1%100!=0) &&(y1%4==0))
cout << y1;
}
答案 0 :(得分:3)
你很亲密,但是:
for(y1 <= y2; ++ y1;)
^
应该是:
for(;y1 <= y2; ++ y1)
^
请注意,因为你正在跳过任何初始化,即通常的int i = 0
,所以你应该确保它是第一个空的,而不是最后一个,因为for循环的结构如下:
for(initialize stuff here; boolean here; iterator here)
答案 1 :(得分:1)
int y1 = 1776;
int y2 = 2008;
for(;y1 <= y2; ++y1)
{
if( (y1%400==0 || y1%100!=0) &&(y1%4==0))
cout << y1;
}
由于y1
已经有值,您可以将for
循环的初始化保留为空。
答案 2 :(得分:0)
你的循环还没有完成。它应该看起来像:
for (int y1 = 0; y1 <= y2; y1++)
答案 3 :(得分:-1)
请花些时间进行快速谷歌搜索,以查看for
循环的正确语法。这是:http://www.cplusplus.com/doc/tutorial/control/