5-循环控制结构

 

1、介绍

1)goto语句和if语句构成循环;

2)while语句;

3)do-while语句;

4)for语句;

2、goto语句

goto语句是一种无条件转移语句, 与BASIC中的goto语句相似。goto 语句的使用格式为:

     goto  语句标号;

goto语句和if语句构成循环

void main()
{
        int i,sum=0;
        i=1;

 loop:   if (i<=100)
           {
	sum=sum+i;
  	 i++;
          	 goto loop;
            }

         printf("%d\n",sum);
}

3、while语句

while语句求

void main()
{
      int i, sum=0;
      i=1;
      while(i<=100)
      {
          sum=sum+i;
          i++;
      };
      printf("%d\n",sum);
}
#include <stdio.h>

void main()
{
    int n=0;
    printf("input a string:\n");
    while( getchar()!='\n' ) 
   {	
	n++;
   };
    printf("%d",n);

}

注意点:

1)   while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环。

2)   循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。

4、do-while语句

这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句。

#include<stdio.h>

int main()
{
	int i,sum=0;
	i=1;
	do
	{
		sum=sum+i;
		i++;
	}while(i<=100);
	printf("%d\n",sum);

	system("PAUSE");
	return 0;
}

4、for语句

形式:for(表达式1;表达式2;表达式3) 语句

它的执行过程如下:

1)       先求解表达式1。

2)       求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假(0),则结束循环,转到第5)步。

3)       求解表达式3。

4)       转回上面第2)步继续执行。

5)       循环结束,执行for语句下面的一个语句。

可以理解为:for(循环变量赋初值;循环条件;循环变量增量) 语句

注意点:

1) for循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项, 即可以缺省,但“;”不能缺省。

2)省略了“表达式1(循环变量赋初值)”, 表示不对循环控制变量赋初值。

3)省略了“表达式2(循环条件)”, 则不做其它处理时便成为死循环。

4)省略了“表达式3(循环变量增量)”, 则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。

5)省略了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。

6)       3个表达式都可以省略。

例如:for(;;)语句

相当于: while(1)语句

 

7) 表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。

例如: for (sum=0;i<=100;i++)

  sum=sum+i;

8)表达式1和表达式3可以是一个简单表达式也可以是逗号表达式。

    for(sum=0,i=1; i<=100; i++)      sum=sum+i;

    或: for(i=0,j=100; i<=100; i++,j--)   k=i+j;

9)表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。

#include<stdio.h>

int main()
{
	int i, j;
  	for ( i=1; i < 7; i++)
  	{ 
			printf("\n");
    		for ( j=1;  j <= i;  j++  )
			{
      			putchar('*');
			}
	}

	system("PAUSE");
	return 0;
}

4、几种循环语句的对比

(1)  四种循环都可以用来处理同一问题,一般情况下它们可以互相代替。但一般不提倡用goto型循环。

(2)  在while循环和do-while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如i++,或i=i+1等)。

for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强凡用while循环能完成的,用for循环都能实现。

(3)  用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成而for语句可以在表达式1中实现循环变量的初始化。

(4)while循环、do-while循环和for循环,可以用break语句跳出循环,用continue语句结束本次循环(break语句和continue语句见下节)。而对用goto语句和if语句构成的循环,不能用break语句和continue语句进行控制。

5、break和continue语句

break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句

  一般形式:break;

break语句不能用于循环语句和switch语句之外的任何其他语句中。

注意:

1)       break语句对if-else的条件语句不起作用。

2)       在多层循环中, 一个break语句只向外跳一层。

作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。

一般形式:   continue;

 continue语句只结束本次循环,而不是终止整个循环的执行。

break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值