break和continue
-
break
功能:
1.用在switch中,用来跳出switch的case语句;如果case没有break,可能会产生case穿透。
2.用在循环中(while、do..while、for..),提前结束循环,也就是跳出整个循环。
说明:
-
break不能用于循环语句和switch语句之外的任何其它语句之中。
-
break只能终止并跳出最近一层的结构。
图示:
案例:
/***
*需求:break案例——参加一阶段考试,如果及格跳出循环,不及格一直考
*/
#include <stdio.h>
int main()
{
printf("一阶段分段考试\n");
//声明一个变量,用来存放考试成绩
int score = 0;
do
{
printf("开始一阶段分阶段考试...\n");
scanf("%d",&score);
//考试合格,结束考试
if(score >= 60){
break;
}
}
while(1);
printf("恭喜你通过考试!\n");
return 0;
}
/**********************************************************
一阶段分段考试
开始一阶段分阶段考试...
55
开始一阶段分阶段考试...
79
恭喜你通过考试!
*************************************************************/
案例:
/***
*需求:break案例——1~100内前十个偶数
**/
#include <stdio.h>
int main()
{
for(int i = 1,count = 1;i <= 100;i++)
{
if(i % 2 == 0)
{
if(count > 10)
{
break;
}
count ++;//只记录偶数
printf("%d\t",i);
}
}
printf("\n");
return 0;
}
/****************************************
2 4 6 8 10 12 14 16 18 20
*****************************************/
-
continue
功能:continue语句不会结束整个循环,而是跳过本次循环尚未执行的语句,进入下一次循环。
说明:
1.仅用于循环语句中。
2.在嵌套循环的情况下,continue语句只对包含它的最内层的循环体语句起作用。
图示:
案例:
/**
* 需求:continue案例-求1~100之内的偶数和
*/
#include <stdio.h>
//不使用continue
void fun01()
{
int sum = 0;
for(int i = 1;i <= 100;i++)
{
//判断偶数
if(i % 2 == 0)
{
sum += i;
}
}
printf("1~100之内的偶数和是:%d\n",sum);
}
//使用continue
void fun02()
{
int sum = 0;
for(int i = 1; i <= 100; i++)
{
// 判断奇数
if(i % 2 != 0)
{
continue;//跳出所有的奇数
}
sum += i;
}
printf("1~100之内的偶数和是:%d\n",sum);
}
int main()
{
fun01();
fun02();
}
/**************************************
1~100之内的偶数和是:2550
1~100之内的偶数和是:2550
****************************************/
-
跳出多层循环
跳出多层循环是不能使用break和continue的,因为他们只能跳出单层循环,跳出多层循环,需要我们自己定义标志位进行跳出。
案例:
// 定义一个标志位
int isFlag = 1;// 默认循环成立
char fu;
while(isFlag)
{
printf("第一层循环执行的内容...\n");
while(isFlag)
{
printf("第二层循环执行的内容...\n");
printf("是否跳出循环?(y/n)");
scanf("%c",&fu);
if(fu == 'Y' || fu == 'y')
{
isFlag = 0;
}
}
}
注意:如果是多层循环,进的时候是从外到内,跳出的时候是从内到外。
以上就是今天C语言的笔记,有什么问题还请指正,谢谢!