设为首页 加入收藏

TOP

C语言中的各种循环
2015-01-22 21:37:25 来源: 作者: 【 】 浏览:78
Tags:言中 各种 循环

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
  
   
/*
for循环示例
*/

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

	system("pause");
}
  

运行后的结果

\


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


<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICA8c3Ryb25nPrW5vMbK/Twvc3Ryb25nPjxicj4KPC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;">#include void main() { for (int i = 20; i >= 1;i--)//倒计数 { printf("%d\n",i); } system("pause"); }

运行后结果

\


增量为2

#include
  
   

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

运行后结果

\



另一种写法

#include
  
   

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

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

运行结果

\


深入理解for

#include
  
   

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");
}
  
 
 运行后结果
 
\



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


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

打印任意行和列
#include
  
   

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"); //每行打印完毕后,添加换行符使其换行
	}
	

}

  

 
 运行结果

\



2,while语句
while语句也叫while循环,他不断地执行一个语句块,直到条件为假为止。
while(condition)
statement

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


while循环

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

}
  
 
 

运行结果

\




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


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


for和while的结合

#define  _CRT_SECURE_NO_WARNINGS
#include
  
   
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");
}
  


运行结果





】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Objective-C特有语法:@property、.. 下一篇c语言参数传递方式

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: