C语言学习——循环控制

循环语句是用于重复执行某条语句(循环体)的语句,它包含三个部分,分别是循环变量初始化,循环执行条件与循环趋于结束语句(在例中说明,之后不再赘述)。C语言提供了3中循环语句,分别为while语句,do while语句和for语句。 

一、goto型

在C语言中,goto 是一个跳转语句,允许程序在特定条件下无条件地跳转到程序中的标签位置。但是,由于滥用 goto 可能导致代码难以理解和维护,应该谨慎使用它。建议最好是不用。

goto 语句的基本用法如下:

goto label:

其中 label 是程序中某个标识符,通常是一个带有冒号的标签。

例如,我们可以使用 goto 在特定条件下跳转到标签位置:

	int i, sum;
	sum = 0;
	i = 1;循环变量初始化

loop:
	if(i <= 100)//循环执行条件
	{
		sum += i;
		++i;	//循环趋于结束语句
		goto loop;
	}

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

上述代码就是通过goto语句的使用,来实现一个简单的循环。

当然在使用goto语句是还要注意一下几点:
1 . goto 语句只能在当前函数内部进行跳转。它不能用于跳转到其他函数或代码块

2 . 标签必须在 goto 语句之后定义,并且标签的作用范围仅限于当前函数。

3 . goto可能会导致代码难以理解、跟踪和维护,能不用最好不用。(工作中被禁止使用)

2、while与do whlie型

while型又称为当型语句,意思就是当.......时

while(判断是否循环的条件)

{
    循环体语句……
}

注意:while语句的特点是先判断循环条件,后执行循环体语句。

使用演示:

	int i = 1, sum = 0;

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

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

do while型

do
{
    循环体;//循环体需要有终止条件,但是不论符不符合判断条件都会执行一次
}while(循环条件);

需要注意的是:do-while语句的特点是先执行循环体,后判断循环条件。因此,do-while循环至少要执行一次循环体。

在使用while型语句与do while型语句时要特别注意:while语句后面不能加‘ ;’,但是do while语句后面不能忘记写‘ ;’

使用演示:

	int i = 1, sum = 0;

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

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

3、for型

for型循环的基本结构:

for (初始化; 循环执行条件;循环趋于结束 ) 
{
    // 循环体
}

要注意的是:for语句括号中三个部分均是语句,用分号';'隔开,而且三个语句均可以省略,可以省略部分或者全部。

使用演示:

	int i, sum = 0;

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

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

试题演示:求100-1000以内的水仙花数


int main(void)
{
	int i;
	for(i = 100;i < 1000;++i)
	{
		int a, b, c;
		c = i % 10;
		b = i / 10 % 10;
		a = i / 100;
		
		if(a * a * a + b * b * b + c * c * c == i)
		{
			printf("%d\n", i);
		}

	}
	return 0;
}

本次学习的3循环条件,它们的循环效率相同,只是面对问题的不同解决方式。遇到问题可以选择最适合自己的方法解决。

 4、break语句

在学习break语句之前,我们要了解内层循环与外层循环。

内层循环是一个循环中还有一个循环,即这个内层循环一般在外层循环的执行语句中。
外层循环是包含了内层循环的循环。
跳出内层循环不是跳出了外层循环,而是停止了内层循环的执行,即执行内层循环下面的包括在外层循环的执行的语句,外层循环仍根据测试条件进行循环,

使用演示:

{
	int i, j;
	for(i = 0;i < 3;++i)
	{
		for(j = 0;j < 10;++j)
		{
			if(j >= 4)
			{
				break;
			}
			printf("%d\n", j);
		}

		if(j < 10)
		{
			break;
		}

	}
	

此段代码中,第一个break语句是跳出了内层循环(if循环),第二个break语句是跳出外层循环(for循环)

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值