循环结构的介绍

本文详细解释了C语言中的while,for,do-while循环语句的语法、执行流程,并比较了它们的特点。同时介绍了break和continue关键字的使用,以及循环嵌套和特殊情况下的goto语句。最后通过实例展示了如何找出100-200之间的素数。
摘要由CSDN通过智能技术生成

while语句

语法形式和执行流程

1.语句形式:
while(表达式)
{
语句 //如果只想执行一句就可以不需要大括号
}

2.执行流程
首先,执行判断表达式,如果表达式的值为0(为假),循环直接结束;如果表达式不为0,则执行循环里面的语句。接着,语句执行完后再继续判断,判断是否进行下一次循环。

while循环的实践

输入一个正整数,逆序输出这个整数的每一位:

#include<stdio.h>

int main()
{
	int n = 0;
	scanf("%d", &n);
	while (0 != n % 10)
	{
		printf("%d ", n % 10);
		n /= 10;
	}
	return 0;
}

for语句

语法形式和执行流程

首先,for语句是三种循环语句中最常见的一种。
1.语法形式:
for(表达式1;表达式2;表达式3)
{
语句
}
其中,表达式1是用于循环变量的初始化,表达式2是用于循环结束的条件的判断,表达式3是循环变量的调整。
2.执行流程:
首先,执行表达式1 初始化循环变量;接着,执行表达式2 的判断部分,如果结果为0,则循环结束,如果结果不为0,则进入循环,执行循环语句,执行完后,则继续执行表达式3,调整循环变量,然后继续执行表达式2 的判断部分,判断其是否为0,决定是否继续执行循环语句。

整个过程中,表达式1只执行1次,剩下的表达式2,循环语句,表达式3循环执行。

for循环的实践

1.计算1-100之间3的倍速的数字之和:

#include<stdio.h>

int main()
{
	int n = 1;
	int sum = 0;
	for (n = 1; n <= 100; n++)
	{
		if (0 == n % 3)
		{
			sum += n;
		}
	}
	printf("%d\n", sum);
	return 0;
}

for与while循环的对比

for和while在循环过程中都有初始化,判断,调整三个部分,但是for循环的三个部分非常集中,便于代码的维护,而如果用while循环的三个部分就比较分散,所以从形式上for循环要更优一点。
在这里插入图片描述
在这里插入图片描述

do while语句

语法形式和执行流程

do
{
	语句;
}while(表达式);

while和for这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环;而do-while循环则先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,则会进行下一次,表达式为假,则不会执行。

在do-while语句中循环体是至少执行一次的,这是do-while循环比较特别的地方。

do while循环的实践

1.输入一个正整数,计算这个整数是几位数:

#include<stdio.h>

int main()
{
	int n = 0;
	int a = 0;
	scanf("%d", &n);
	do
	{
		a++;
	} while (n /= 10);
	printf("%d\n", a);
	return 0;
}

break和continue语句

break和continue语句就是运用到循环中的两个关键字:
1.break的作用是用于永久的终止循环,只要break被执行,直接就会跳出循环,继续往后执行。
2.continue的作用是跳过本次循环continue后边的代码,在for和while中有所差异差异的。

while循环

1.break就是永久的终止循环,只要break被执行,break外的第一层循环就终止了;
2.continue可以帮助我们跳过某一次循环continue后边的代码,直接到循环的判断部分,进行下一次循环的判断,则可能造成死循环

for循环

1.break和while相同;
2.continue的作用是跳过本次循环中continue后的代码,直接去到循环的调整部分

do while循环

1.break和continue的作用与while相同

循环的嵌套

while,do-while,for,这三个循环往往会嵌套在一起才能更好的解决问题。

实践练习

1.找出100-200之间的素数,并打印在屏幕上。

int main()
{
	int n = 0;
	for (n = 100; n <= 200; n++)
	{
		int flag = 0;
		for (int i = 2; i < n; i++)
		{
			if (n % i == 0)
			{
				flag = 1;
				break;
			}
		}
		if (0 == flag)
		{
			printf("%d ", n);
		}
	}
	
	return 0;
}

goto语句

1.作用:
goto语句可以实现在同一个函数内跳转到设置好的标号处,经常与跳转标号一起用

#include<stdio.h>

int main()
{
	printf("hehe\n");
	goto next;
	printf("haha\n");

next:
	printf("跳过了haha的打印\n");

	return 0;
}

2.使用提示:
一般不会使用goto语句,在多层循环的代码中,如果想要快速跳出,使用goto语句就非常的方便了。

for(...)
{
	for(...)
	{
		for(...)
		{
			if(disaster)
				goto error;
		}
	}
}

error:
  //...

本来for循环想提前退出得使用break,一个break只能跳出一层for循环,如果三层嵌套for循环就得使用三个break才能跳出循环,所以这个时候我们使用goto语句就会更加的快捷。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值