分支与循环(下)(#补充)

1. break和continue关键字

  • break 的可以永久地跳出循环,只要break 被执行,直接就会跳出循环,若 break 执行,则break 外的第一层循环终止继续往后执行。
  • continue 的作用是跳过本次循环 continue 后面的代码,continue 可帮助我们跳过某一循环continue 后面的代码,直接到循环的判断部分,进行下一次循环的判断,若循环的调整在continue 的后面,则可能会造成死循环。在 for 循环和 while 循环中有所差异。

例:

1.
2.  #include <stdio.h>
3. 
4.  int main()
5.  {
6.  	int  i = 1;
7.	    while(i <= 10)
8.	    {
9.		
10.		   if (i == 5)
11.  		{
12.  			continue;  //当i=5时,执行continue语句,直接跳过continue后的语句,
13.  					  // 不会执行i++语句,变量i 的值停留为5,一直满足while的判断语句
14.                       //程序陷入死循环
15.  		}
16.  		printf("%d ", i);
17.  		i++;
18.  	}
19.     return 0;
20.  }

 可见:光标一直在闪烁,程序陷入了死循环。

2. for循环中的continue和break

2.1 continue举例

1.  int main()
2.  {
3.    i = 0;
4.    for(i = 1;i<10;i++)
5.      if(i==5)
6.        break;
7.      printf("%d ",i)
8.    return 0;
9.  }

2.2 break举例

1.  int main()
2.  {
3.  	int i = 0;
4.  	for (i = 1; i < 10; i++)
5.  	{
6.  		if (i == 5)
7.  			break;
8.  		printf("%d ", i);
9.  	}
10.  	return 0;
11.  }

while 循环和 for 循环中的 continue 区别: 

 3. 循环的嵌套

3.1 练习:

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

注:素数又称质数,只能被1和本身整除的数,合数则为剩下的所有数。

3.2 参考代码:

1.  #include<math.h>
2.  int main()
3.  {
4.  	int i = 0;
5.  	for (i = 100; i <= 200; i++)
6.  	{
7.  		int j = 0;
8.  		int flag = 1;
9.  		for (j = 2; j <= sqrt(i); j++) //sqrt函数是用来求平方根的,由数学知识可知一个数的 
10.                                        //最大公因数,即为它的算数平方根,这样可以简化计算 
11.                                        //机运算的次数,提高效率。
10.  		{
12.  			if (i % j == 0)
13.  			{
14.  				flag = 0;
15.  				break;
16.  			}
17.  		}
18.  		if(flag == 1)
19.  		  printf("%d ", i);
20.  	}
21.  	return 0;
22.  }

4. goto语句

goto 语句可以实现在同一个函数内跳转到设置好的标号处。

例:

1.  int main()
2.  {
3.  	printf("hehe\n");
4.  	goto next;       //goto 后可以是任意英文字母组合,不一定非是next 
5.  	printf("haha\n");
6.  next:
7.  	printf("跳过了haha的打印");
9.  
10.  	return 0;
11.  }

goto 语句如果使用不当,就会在函数内部随意跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用;但是 goto 语句也不是一无是处,在多层循环的代码中,如果想要快速跳出使用 goto 语句就非常的方便了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值