c语言_三种循环

  c语言中,说起循环想必大家都不陌生,因为这是我们很常用的一种结构,无非就是while,for,do{ }while三种常用结构咯,那么先请大家看如下代码:

//请问循环要循环多少次?k=?
#include <stdio.h>

int main()
{
	int i = 0;
	int k = 0;
	for(i =0,k=0; k=0; i++,k++)
	{
		k++;
	}
	printf("%d\n",k);
	return 0;
}

  有人肯定就会纳闷了,我以前见过的for循环不是都类似于for(i=0;i<10;i++)这种吗,首先初始化一下变量,然后让变量小于某一个值,然后++,使得变量在一定范围内进行递增或者递减。

  这道题先放一会,我们先重新了解一下一个for循环中各部分代码的执行次序

for(变量初始化;循环条件;变量更新)
{
  代码块();
}

for循环执行的次序是:
在这里插入图片描述
  c语言中0表示假,非0表示真,类似于我们常写的循环一样,for(i=0;i<10;i++),循环开始后,i=0(i先初始化为0),i<10(循环条件判定)为真,返回非0,然后执行代码块,再进行变量更新…直到循环条件不满足后退出循环。这就是for循环中代码的执行次序了。

  此时我们再回过头去看那道题就很简单了,for(i =0,k=0; k=0; i++,k++),循环开始后,i=0,k=0(i和k先初始化为0),k=0(循环条件判定),0为假,故循环条件判断失败,循环结束。循环0次,k=0。

  了解了for循环的执行次序之后,类似于while循环,我们只需要按照流程图的执行次序去分析就行,do{ }while循环有一点要注意,进入循环后,不论循环条件是否满足,会先执行代码块一次,然后再进行类似于流程图的代码执行次序。就像在ATM机上取钱一样,不论对错,首先你得输入一次密码,然后再进行后续的判定,在这两个循环中,我们习惯于把变量更新写在代码块部分,for循环中对于变量初始化,循环条件,变量更新书写的比较集中。

while(循环条件)
{
  代码块();
  变量更新;
}

do
{
  代码块();
  变量更新;
}while(循环条件)

  循环条件的判定,就像是表达式求真假一样,正是因为这样,当我们把循环条件置为空或者1的时候(循环条件判定永远为真,循环无法退出),我们可以很容易的写出三种循环的死循环代码:

while(1)
{
  代码块();
  变量更新;
}

for( ; ; ; )
{
  代码块();
}

do
{
  代码块();
} while(1)

不畏浮云遮望眼,自缘身在最高层!

原创文章 6 获赞 21 访问量 284

猜你喜欢

转载自blog.csdn.net/chenzhanpeng_/article/details/105557933