交流|新手请教 for 循环无法进入的问题
1234
2023.10.15
发布于 未知归属地

简介

小学生新手请教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;
}

疑问 :两者逻辑上没区别,为什么前面的写法无法进入循环。

评论 (14)