分支与循环(下)

1.do-while循环

它的语法是:

while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳出循环;⽽ d o while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏while 后的判断表达式,表达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

在屏幕上打印1~10的值:

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

在 do while 语句中循环体是⾄少执⾏⼀次。

输⼊⼀个正整数,计算这个整数是⼏位数?

例如: 输⼊:1234 输出:4 输⼊:12 输出:2。

#include <stdio.h>
//输出数字的个数
int main()
{
	int n = 0;
	scanf("%d", &n);
	int cnt = 0;
	do
	{
		cnt++;
		n = n / 10;
	} while (n);
	printf("%d\n", cnt);
	return 0;
}

2.break和continue语句

在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中提供了 break 和cvontinue 两个关键字,就是应该到循环中的。

break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执⾏。

continue 的作⽤是跳过本次循环continue 后边的代码,在for和while循环中有差异。

while循环中的break和continue

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

果把 break 换成 continue:

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

当 i 等于 5 后,就执⾏ continue ,直接跳过 continue 的代码,去循环的判断的地⽅。跳过了 i = i+1 ,所以 i ⼀直为 5 ,程序陷⼊和死循环。

continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接到循环的判断部分,进⾏下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成死循环。

for循环中的break和continue

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

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

dowhile循环中的break和continue的作⽤和while 循环中⼏乎⼀模⼀样。

3.循环的嵌套

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

注:素数⼜称质数,只能被1和本⾝整除的数字。

//嵌套
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 100; i <= 200; i++)
	{
		//判断1是素数则打印,不是跳过
		//用2-i之间数字去除整除了i,则i不是素数
		int j = 0;
		int flag = 1;
		//设=1是素数
		for (j = 2; j <= i - 1; j++)
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
		{
			printf("%d ", i);
		}
	}
	return 0;
}

4.goto语句

C语⾔提供了⼀种⾮常特别的语法,就是goto 语句和跳转标号, goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。

//goto语句
#include <stdio.h>
int main()
{
again:
	printf("hehe\n");
	goto again;
	return 0;
}

goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以能不⽤尽量不去使⽤;但是也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出使⽤ goto 就⾮常的⽅便了。

⼀个 break 只能跳出⼀层for 循环,如果3层循环嵌套就得使⽤3个break 才能跳出循环,所以在这种情况下我们使⽤goto 语句就会更加的快捷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值