码迷,mamicode.com
首页 > 编程语言 > 详细

C语言中的各种循环

时间:2014-04-29 13:22:21      阅读:430      评论:0      收藏:0      [点我收藏+]

标签:c   visual studio   windows   编程   c++   


C程序在默认情况下,是自顶向下执行,从main()的起始位置开始,逐条地执行语句,直到main()函数的最后。
但是实际情况中却很少这样,C语言提供了各种程序控制语句,以控制程序的执行次序。
流程控制语句有哪些呢?
if语句。
for语句。
while语句。
do...while语句。


1,for语句

  for语句是一种C编程结构,它将一个由一条或多条语句组成的代码块执行特定的次数。它有时候也被称为for
循环,因为程序通常循环执行这种语句多次。
for语句的结构:
for(initial;condition;increment)
{
statement;


}
其中initial、condition、increment都是表达式,而statement为单条语句或复合语句。
程序执行到for语句时,将发生以下事件:
a,执行表达式initial。initial通常是一条赋值语句,将一个变量设置为特定的值。
b,判断condition。condition通常是一个关系表达式。
如果condition为假(即等于0),for语句结束,并接着执行statement语句后面的
第一条语句。
如果condition为真(即不等于0),则执行statement语句。
c,执行表达式increment,然后返回到第2步。

  简单的for循环
#include<stdio.h>
/*
for循环示例
*/

int i; //在声明全局变量 i
//打印1到20的数字
void main(void)
{
	for (int i = 1; i <= 20;i++)  // 向上计数
	{
		printf("%d\n",i);
	}

	system("pause");
}

  运行后的结果

mamicode.com,码迷


for语句常常被用来“向上计数”,也就是将计算器从一个值增加到另一个值,我们也
可以使用“倒计数”,也就是将计算器变量递减。


  倒计数

#include<stdio.h>

void main()
{
	for (int i = 20; i >= 1;i--)//倒计数
	{
		printf("%d\n",i);
	}
	system("pause");
}

 运行后结果

mamicode.com,码迷


 增量为2

#include<stdio.h>

void main()
{
	int i = 0;
	/*
		for语句非常灵活,若已经在程序前面初始化了计数器,则可以省略初始化表达式,但不能省略分隔符。
	
	*/
	for (; i <= 20; i += 2)//向上计数,但增量为2
	{
		printf("%d\n", i);
	}
	system("pause");
}

  运行后结果

mamicode.com,码迷



 另一种写法

#include<stdio.h>

void main()
{
	int i = 0;
	for (; i <= 20;)//向上计数,但增量为2
	{

		//i++   写在这里也是可以的
		printf("%d\n", i++); //i++  放在这里也是也是可以的
	}
	system("pause");
}

 运行结果

mamicode.com,码迷


 深入理解for

#include<stdio.h>

void main()
{
	/*
	用于终止for循环的表达式也可以是任何表达式。只要该表达式为真(非零),for语句便会继续执行。
	
	*/
	int i = 0;
	int j = 15;
	for (; i <= 20 && j>=0;)//向上计数,但增量为2
	{
		j--;

		//i++   写在这里也是可以的
		printf("%d\n", i++); //i++  放在这里也是也是可以的
	}
	system("pause");
}

 运行后结果
mamicode.com,码迷



initial 可以使任何合法的表达式,通是一个将变量设置为特定的赋值语句。
condition 可以是任何合法的表达式,通常是一个关系表达式。当condition为假(0)时,for
语句将终止,然后接着执行statement后面的第一条语句;否则将执行statement中的语句。


for语句中可以包含另一条for语句,这就是嵌套。

 打印任意行和列
#include<stdio.h>

void draw_box(int, int);

void main()
{
	//打印出8行25列的X
	draw_box(8, 25);
	system("pause");
}

void draw_box(int row, int column)
{

	int col; //定义中间变量
	for (; row > 0;row--)
	{
		for (col = column; col > 0;col--)
		{
			printf("x");
		}
		printf("\n"); //每行打印完毕后,添加换行符使其换行
	}
	

}

 运行结果

mamicode.com,码迷



2,while语句
 while语句也叫while循环,他不断地执行一个语句块,直到条件为假为止。
 while(condition)
    statement
 
其中condition可以使任何表达式,statement是一条语句或一个复合语句。
程序执行到while语句后,将发生一下事件:
 a,计算表达式condition;
 b,如果condition为假(0),while语句将结束。
 c,如果condition为真(非0),将执行statement中的语句。
 d,返回到第1步。


 while循环

#include<stdio.h>
int count;
/*
打印1到20的数字
*/
void main()
{
	count = 1;//初始化
	while (count<=20)
	{
		printf("%d\n",count);
		count++;
	}
	system("pause");

}

运行结果

mamicode.com,码迷




结论:
 for(;condition;) 等价于 while(condition);
由于这种等价性,使用for语句能够完成的任何工作,都可以用while语句来完成。
使用while语句时,必须先使用单独的语句来完成所有必要的初始化工作,同时必
须在while循环体内使用一条语句来完成递增工作。


和for语句一样,while语句的嵌套。


  for和while的结合

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int array[5]; //声明一个容量为5的数组
void main(void)
{
	//声明并初始化2个变量
	int ctr = 0,
		nbr=0;
	printf("This program prompts you to enter 5 numbers \n");
	printf("Each number  should be  from 1 to 10 \n");

	while (ctr < 5)
	{
		nbr = 0;
		while (nbr<1|| nbr>10)
		{
			printf("\n Enter number %d of 5:",ctr+1);
			scanf("%d",&nbr);
		}
		array[ctr] = nbr;//给数组赋值
		ctr++; //增量1
	}
	//输出数组
	for (ctr = 0; ctr < 5;ctr++)
	{
		printf("Value %d is %d\n",ctr+1,array[ctr]);
	}
	system("pause");
}


 运行结果

mamicode.com,码迷



C语言中的各种循环

标签:c   visual studio   windows   编程   c++   

原文地址:http://blog.csdn.net/mini0520/article/details/24686663

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