分支和循环 Branch and loop 3-for循环-do-while 循环-break和continue语句

for循环

  • for(表达式1; 表达式2; 表达式3)
  • 语句;//如果循环体想包含更多的语句,可以加上大括号
表达式1 循环变量的初始化
表达式2 循环结束条件的判断
表达式3 循环变量的调整
  • 整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。
  • for while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部
    分非常集中,便于代码的维护,而如果代码较多的时候 while 循环的三个部分就比较分散,所以从形式上 for 循环要更优⼀些。
int i = 0;
for (i=1;i <= 10;i++)
{
	printf("%d ", i);
}
//计算1~100之间3的倍数的数字之和
int i = 0;
int sum = 0;
for (i = 1; i <= 100; i++)
{
	if (i % 3 == 0)
		sum += i;
}
printf("%d\n", sum);

do-while 循环

do
        语句;
while ( 表达式 )
  • while for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳 出循环
  •  do while 循环则是先直接进入循环体,执行循环语句,然后再执行while 后的判断表达式,表达式为真,就会进行下⼀次,表达式为假,则不再继续循环。(至少循环一次)
//打印1-10
int i = 1;
do
{
	printf("%d ", i);
	i += 1;
} while (i <= 10);
//输⼊⼀个正整数,计算这个整数是⼏位数
int i = 0;
int num = 0;
scanf("%d", &i);
do {
	num++;
	i = i / 10;
} while (i);
printf("%d", num);

break和continue语句

在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环。C语言中 提供了 break continue 两个关键字,就是应用到循环中的。
  • break 用终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行
  •  continue 是跳过本次循环中 continue 后边的代码,在 for 循环和 while 循环中有所差异的。
while循环中的break和continue

do.while 语句中的 break continue 的作用和 while 循环中几乎⼀模⼀样

int i = 1;
 while(i<=10)
 {
 if(i == 5)
 break;//当i等于5后,就执⾏break,循环就终⽌了
 printf("%d ", i);
 i = i+1;
 }
//结果为 1 2 3 4
//打印了1,2,3,4后,当i等于5的时候,循环在 break 的地⽅终⽌,不再打印,不再循环。
int i = 1;
 while(i<=10)
 {
 if(i == 5)
 continue;
 //当i等于5后,就执⾏continue,直接跳过continue后的代码,去循环的判断的地⽅
 //因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊和死循环
 printf("%d ", i);
 i = i+1;
 }

int i = 1;
 while(i<=10)
 {
 i = i+1;
 if(i == 5)
 continue;
//当i等于5后,就执⾏continue,直接跳过continue后的代码,去循环的判断的地⽅
 //因为这⾥跳过了printf("%d ", i);所以不打印5
printf("%d ", i);
 }
for循环中的break和continue
 int i = 1;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 break;
 printf("%d ", i);
 }
//结果 1 2 3 4

 int i = 1;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 continue;//这⾥continue跳过了后边的打印,来到了i++的调整部分
 printf("%d ", i);
 }

循环的嵌套

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

\\要从100~200之间找出素数,⾸先得有100~200之间的数,可以使⽤循环解决。
\\假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤
循环解决。
\\如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。
 int i = 0;
 int count = 0;
 //循环产⽣100~200的数字
 for(i=100; i<=200; i++)//优化for(i=101;i<=200;i+=2)
 {
 //判断i是否为素数
 //循环产⽣2~i-1之间的数字
 int j = 0;
 int flag = 1;//假设i是素数
 for(j=2; j<i; j++)
 {
 if(i % j == 0)
 {
 flag = 0;
 break;}
 }
 if(flag == 1){
 count++;
 printf("%d ", i);
 }
 printf("%d\n",count);
 }
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JIEGAOBABY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值