C语言循环结构

在C语言中循环结构是很重要的,它主要由while语句do...while语句和for语句构成,下面是我的一些理解。

1.while语句

while(表达式)

{

语句块;

}

while语句格式很简单,当条件为真时(即表达式返回值为非零时)会反复执行语句块直到条件为假时停止循环。

如:求1~100所有数字的和

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

运行结果为:sum=5050

注意:while语句只会循环紧跟着while后的一条语句,如果需要循环多条语句需要用{ }括起来。

2.do...while语句

do
{

语句块;

}while(表达式);

do...while语句与while语句相似,与while语句不同的是do...whlie语句是先执行一次语句块再去判断表达式的,表达式为真则继续循环语句块直到表达式为假则停止循环。

如:

#include <stdio.h>
int main()
{
	int i = 1;
	do
	{
		printf("%d ", i);
		i++;
	} while (i <= 10);
	return 0;
}

运行结果为:1 2 3 4 5 6 7 8 9 10

注意:while的末尾是有分号的。

3.for语句

for(表达式1;表达式2;表达式3)

{

语句块;

}

for语句中

表达式1为初始化部分,用于初始化循环变量的,首先被执行,且只会执行一次。这一步允许声明并初始化任何循环控制变量。也可以不在这里写任何语句,只要有一个分号出现即可。

表达式2 表达式2为条件判断部分,用于判断循环时候终止。表达式2将进行判断,如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。

表达式3为调整部分,用于循环条件的调整。该语句允许更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。

执行流程为:先执行表达式1,再执行表达式2,如果表达式2成立则执行下面的语句块,然后执行表达式3,再判断表达式2成立继续循环,不成立则跳出循环,执行for后面的语句。

如:

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

运行结果为:sum=5050

注意:for语句中的表达式用“;”隔开,不用“,”隔开。

4.循环的嵌套

循环的嵌套,顾名思义就是循环里面再套一个循环,下面用几个例子说明:

(1)while嵌套

#include<stdio.h>
int main()
{
	int a=1,b=4;
	while(a<=4){
		a++;
		printf("a的值:%d\n",a);
		while(a<=b){
			
			printf("b的值:%d\n",b);break;
		}
	}
}

运行结果为:

(2)do...while嵌套

#include<stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	do {
		// 外层循环代码
		do {
			// 内层循环代码
			j++;
		} while (j < 5);
		i++;
	} while (i < 3);
	printf("i=%d j=%d", i,j);
		return 0;
}

运行结果为:

(3)for嵌套

循环次数为外循环次数*内循环次数

#include<stdio.h>
int main()
{
	int i, j;
	for (i = 1; i <= 3; i++)
	{
		for (j = 1; j <= 2; j++)
		{
			printf("i=%d,j=%d\n", i, j);
		}
	}

		return 0;
}

运行结果为:

5.break与continue在循环中的作用

循环中遇到break,就停止后期的所有的循环,直接终止循环,continue是用于终止本次循环的。

(1)在while语句中的作用

while中的break是用于永久终止循环的

如:

#include <stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			break;
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}

运行结果为:1 2 3 4

continue是用于终止本次循环的,本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

如:

#include<stdio.h>
int main()
{
	int sum = 0;
	for (int i = 1; i <= 5; i++)
	{
		if (i % 2 == 1) continue;
		sum = sum + i;
	}
	printf("sum=%d", sum);
	return 0;
}

运行结果为:sum=6

注意:在while()循环中使用continue时,可能会跳过循环中的调整部分,导致死循环。

如:

#include <stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			continue;
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}
 

 可以发现函数没有结束,死循环了。

(2)在do...while语句中的作用

与在while中区别不大,也存在使用continue可能导致代码死循环的情况。

如:break:

#include <stdio.h>
int main()
{
    int i = 1;
 
    do
    {
        if (5 == i)
            break;
        printf("%d ", i);
        i++;
    } while (i <= 10);
 
    return 0;
}

运行结果为:1 2 3 4

continue:

#include <stdio.h>
int main()
{
    int i = 1;
 
    do
    {
        if (5 == i)
            continue;
        printf("%d  ", i);
        i++;
    } while (i < 10);
 
    return 0;
}

while一样,出现了死循环。

(3)在for语句中的作用

整体上与在while循环中差别不大,不过在for循环中使用continue不会跳过调整部分,不会出现像while循环中不当使用continue导致的死循环。

如:break:

#include<stdio.h>
int main()
{
	int n, sum = 0;
	for (n = 1; n <= 100; n++)
	{
		sum=sum+n;
		if(sum>=2000) 
			break;
	}
	printf("sum=%d", sum);
	return 0;
}

运行结果为:sum=2016

continue:

#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 continue;
 printf("%d ",i);
 }
 return 0;
}

未陷入死循环。

注意:循环中所有表达式后面都只循环最靠近它的一条语句,如果需要执行多条语句需要用{ }括起来。

好了,以上就是我对循环结构的一些理解啦,希望对大家有所帮助,如果有不足或不对的地方还请大家指正。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值