C语言:循环结构

一.概述
C语言提供了多种循环语句,可以组成各种不同形式的循环结构。
(1)用 goto 语句和 if 语句构成循环
(2)用 while 语句
(3)用 do-while 语句
(4)用 for 语句

二.goto 语句及构成的循环
goto 语言是一种无条件转移语句,
goto 语句的使用格式: goto 语句标号;

其中标号是一个有效的标识符,这个标识符加上一个“:”一起出现在函数内某处, 执行goto 语句后,程序将跳转到该标号处并执行其后的语句。另外标号必须与 goto 语句同处于一个函数中,但可以不在一个循环层中。
通常 goto 语句与 if 条件语句连用, 当满足某一条件时, 程序跳到标号处运行。

注意:goto 语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用 goto 语句则比较合理。

三.while 语句
while 语句的一般格式:while (表达式) 语句
语句的语义是:计算表达式的值,当值为真(非0)时,执行循环语句。

例如:

#include <stdio.h>
int main()
{
	int a=0,n;
	
	printf("\n input n: ");
	scanf("%d",&n);

	while (n--)
	printf("%d ",a++*2);
	
 return 0;
}

四.do-while语句
do-while语句的一般表达式:
do
语句
while (表达式);

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

注意:while 和 do-while 循环比较

(1)while语句

#include <stdio.h>

int main()
{
	int sum=0,i;
	scanf(“%d”,&i);

	while(i<=10)
	{
		sum=sum+i;
		i++;
	}   
	printf(“sum=%d”,sum);
	
	return 0;
}

(2)do-while语句

#include <stdio.h>

int main()
{
	int sum=0,i;
	scanf(“%d”,&i);

	do
	{
		sum=sum+i;
		i++;
	}
	
	while(i<=10);
	
	printf(“sum=%d”,sum);

	return 0;
}

五.for语句

在 C 语言中,for 语句使用最为灵活,它完全可以取代 while 语句。

它的一般形式为:
for(表达式1;表达式2;表达式3) 语句

它的执行过程如下:
(1)先求解表达式 1。
(2) 求解表达式 2,若其值为真(非 0),则执行 for 语句中指定的内嵌语句,然后执行下面第 (3)步;若其值为假(0),则结束循环,转到第 (5)步。
(3)求解表达式 3。
(4) 转回上面第 (2)步继续执行。
(5)循环结束,执行 for 语句下面的一个语句。

for语句最简单的应用形式是:

for (循环变量赋初值;循环条件;循环变量增量)语句

循环变量赋初值总是一个赋值语句, 它用来给循环控制变量赋初值; 循环条件是一个关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用“;”分开。

例如:

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

先给 i 赋初值 1,判断 i 是否小于等于 100, 若是则执行语句,之后值增加 1。再重新判断,直到条件为假,即 i>100 时,结束循环。

注意
1.for 循环中的“表达式1(循环变量赋初值)”,“表达式2(循环条件)”,“表达式3(循环变量增量)”,都是选项项,即可以缺省,都是 “;”不可以缺省;
2.省略了“表达式1(循环变量赋初值)”,表示不对循环控制变量赋初值;
3.省略了“表达式2(循环条件)”,则不做其它处理时便成为循环;
4.省略了“表达式3(循环变量增量)”,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句;
5.省略了“表达式 1(循环变量赋初值)”和“表达式 3(循环变量增量)”。
例如:

for(;i<=100;)
{
sum=sum+i;
i++
;}

相当于:

while(i<=100)
{
sum=sum+i;
i++;
}

6.3 个表达式都可以省略。
例如:

for(;;)

相当于:

while(1)

六.循环的嵌套

例如:

#include <stdio.h>

int main()
{
	int i, j, k;
	printf("i j k\n");

	for (i=0; i<2; i++)
	for(j=0; j<2; j++)
	for(k=0; k<2; k++)

	printf(“%d %d %d\n", i, j, k);

	return 0;
}

七.break 和 continue 语句

break 语句通常用在循环语句和开关语句中。当 break 用于开关语句 switch 中时,可使程序跳出 switch 而执行 switch 以后的语句;如果没有 break 语句,则将成为一个死循环而无法退出。
continue 语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue 语句只用在 for、while、do-while 等循环体中,常与 if 条件语句一起使用,用来加速循环。

(1) while(表达式 1)
{ ……
if(表达式 2) break;
……
}

(2) while(表达式 1)
{ ……
if(表达式 2)continue;
……
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值