小学生新手请教C++ for循环进入条件问题,请大牛指导。谢谢!
如下代码,在for循环中的终止条件h <= 1 ,第一次进入时肯定不满足,但是就是无法进入循环,直接到最后的输出语句。
#include <iostream>
using namespace std;
int main()
{
int i;
int len = 8;
int h = 8;
for(i = 1; h <= 1; i++)
{
h = h/2;
len = len + h*2;
}
cout << i << " " << len << endl;
return 0;
}
只好把循环终止条件空着,采用循环体内用条件加break,才能正常运行。
#include <iostream>
using namespace std;
int main()
{
int i;
int len = 8;
int h = 8;
for(i = 1; ; i++)
{
if(h <= 1)
{
break;
}
h = h/2;
len = len + h*2;
}
cout << i << " " << len << endl;
return 0;
}
疑问 :两者逻辑上没区别,为什么前面的写法无法进入循环。