C语言 for语句
1.for循环的一般形式
for循环的一般形式如下:
f or (表达式1:表达式2:表达3)
循环语句
说明如下:
①表达式1:通常是给循环变量赋初值,一般是一个赋值表达式。
②表达式2:通常是循环条件,是用来判断循环是否继续执行的关系表达式或逻辑表达式。这个表达式通常与某一个(或多个)变量的值有关,随着这个(些)变量值的改变,表达式的结果发生变化,由此来达到循环条件趋近于0,从而退出循环。这个(些)变置一般被称为循环变量。
③表达式3:通常可用来修改循环变量的值,一般是赋值语句,可将表达式3称为循环步长。
④循环语句可以是一条语句,也可以是多条语句,如果是多条语句,要使用复合语句的形式。
2. for循环的执行过程
①计算表达式1,通常用于循环开始前对循环变量设置初值。
②计算表达式2,值为0则结束循环,否则执行第3步。
③执行循环语句。
④计算表达式3,返回第2步。 for语句的执行流程如图所示。
从执行流程图中可以看出,整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次。如果开始表达式2的值就为0的话,循环可以一次也不执行。例如:
for(i—10; i<5; i++)
printf("%d",i);
程序中,先将赋值为10,之后判断表达式2: i<5表达式不成立,所以循环一次也不执行。
在某些情况下,for语句中的表达式1、表达式2、表达式3都可以省略,而改用其他的方式来实现这些功能。例如:输出1~20之间的整数。
①正常的程序为:
int i;
for (i-1;i<=20;i++)
printf("%d",i);
②省略表达式1的情况:
int i-1; /*定义变量i并初始化,相当于表达式1的功能*/
for(;i<=20;i++) /*此处表达式1省略,但分号“;”不可以省略*/
printf ("%d ",i);
③省略表达式2:
for(i=l;;i++)
{
if(i〈一20)
printf ("%d ",i);
else
break; /*使用break终止循环*/
}
此时for语句没有设定循环结束条件,等效于while(1)语句。如果循环体中没有相应的控制循环退出的手段,则造成死循环。
break语句用在循环体内,可以终止循环。具体用法将在后面介绍。
④省略表达式3:
for(i=l;i<-20;)
/*省略的表达式3放在了循环体中,分号“;”同样不可省略*/
{
printf("%d ",i);
i++;
}
这里需要注意,不要写成如下形式:
for(i=l;i<=20;i++)
{
printf ("%d ",i);
i++;
}
这样写相当于i++;执行了两次,那么输出的就是1〜20之间的奇数了。
⑤也可以表达式1、2、3全部省略,则程序可写成如下形式:
int i=l; /*起到表达式1的作用*/
for(;;)
{
if(i<-20) /*起到表达式2的作用*/
printf ("%d
else
break;
i++; /*起到表达式3的作用*/
}
3.循环程序设计思路
实际编程时,不管是用for、while、do-while三种语句中的哪种语句来实现循环,在分析问题是否使用循环来实现的时候,需要考虑以下几个问题:
①输入是什么?用来确定原始值。
②输出是什么?确定应该输出的结果。
③从输入转换为输出需要怎样的步骤,是否需要重复。(确定是否需要使用循环语句,及循环语句的内容)
④如需重复,能否提前预知重复的次数?以便用来确定使用while、do-while, for哪种循环语句。
⑤何时不再需要重复?以便用来确定循环条件,及循环体中使循环条件趋近于0的语句。
4.三种循环的比较
所有需要用到循环结构的程序,都可以用for、while、do-while中的任何一个来实现,区别只在于某些问题用哪种语句更方便。
•对于已知执行次数的循环使用fo「循环更加方便;
•循环次数未知,而是需要使用根据某一条件来决定是否退出循环的,可以使用while循环或do-while 循环。do-while循环条件放在循环体之后,最少执行一次循环体。
点击加载更多评论>>