码迷,mamicode.com
首页 > 其他好文 > 详细

for循环深究

时间:2014-10-24 10:32:34      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:blog   io   os   for   sp   div   on   log   bs   

 

#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循环深究

标签:blog   io   os   for   sp   div   on   log   bs   

原文地址:http://www.cnblogs.com/chaoseco/p/4047577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!