首页 > 代码库 > for循环深究
for循环深究
#include<iostream>using namespace std;int main (){ int i = 0; for(i = 0,cout<< "First=" << i <<‘ ‘;cout<< "Second=" << i <<‘ ‘,i < 10;i++,cout<< "Third=" <<i<<‘ ‘) { cout<<"Fourth="<<i<<endl; } return 0;}
这个是朱老师《C语言笔试陷阱与难点第一阶段》里的一道题,想告诉我们for 循环的顺序。简单理解下 如果整个循环如下
for(A;B;C){D}
其顺序为A,B,D,C,B,D,C,B,D,C.. 直到判断语句成立结束。如果改一下B句的逗号表达式的顺序 即上述语句第二句变为
for(i = 0,cout<< "First=" << i <<‘ ‘;i<10,cout<< "Second=" << i <<‘ ‘;i++,cout<< "Third=" <<i<<‘ ‘){cout<<"Fourth="<<i<<endl;}
输出是一个无限循环了。解释如下,首先 i = 0,cout<< "First=" << i <<‘ ‘; 这句执行完就没事了。 然后执行 i<10 然后执行 cout<< "Second=" << i <<‘ ‘ ;然后执行循环体 cout<<"Fourth="<<i<<endl; 然后执行 i++,cout<< "Third=" <<i<<‘ ‘ 再然后执行 i<10......
我想表达的是,这是一个逗号表达式,0,1 这一句的结果是1,cout<<"Second="<<i<<‘ ’ 这一句的值恒为1。
做了下实验 如果把判断改成 i < 10,0 则输出初始语句直接结算。如果改成 i < 10,1 则输出无限循环。
for循环深究
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。