C语言入门Day_17 循环的控制
目录
前言
我们知道当循环判断的边界条件不成立以后,循环就结束了。除此以外,我们如果想要提前结束循环,或者在循环中跳过某一次循环代码的执行,应该怎么做呢?
假如我们设计了一个游戏,游戏机制是,当某个关卡得分低于10分时,就终止(game over);否则游戏就继续运行。
这事后我们就需要用到break关键字。
1.break
1.1
?break
关键字的作用是让当前的while或者for循环停止。
使用break就像是在打游戏时,被boss打败,游戏结束退出。
break
会结束所在的循环,就像跳出这个循环,然后执行循环后面的代码。
1.2
这6行代码遍历整型数组score_list,并依次输出其中的数字,如果列表中有小于10的数字,就输出字符串"game over"并终止循环结构。
int score_list[5]={20,30,5,15,10};
for (int i=0;i < 5;i++ ){
if(score_list[i] < 10){
printf("game over\n");
break;
}
printf("%d\n",scoer_list[i])
}
1.定义一个整型数组? ?int score_list[5]={20,30,5,15,10};
2.for循环,从1到5? ?for(int i = 0; i < 5; i++){? ?
3.每次循环进行一次判断,小于10就执行判断代码块中的代码
if(score_list[i] < 10){
printf("game over\n");
break;
}
4.break关键字,跳出for循环,终止循环? ??break;
5.如果分数大于10,就打印这个分数? ?printf("%d\n", score_list[i]);
1.3
break
的功能是跳出所在的循环,或者说终止所在的循环。
所以代码执行到break
的地方,不管循环的条件是否满足,整个循环都结束了。
break的代码执行顺序,在for循环的代码执行顺序以外,新增了跳出/终止的顺序:
int scorr_list[5]={20,5,10,15,30};
for(int i=0;i<5,i++);
if(score_list[i]<10){
printf("game over\n");
break;
}
printf("%d\n",score_list[i]);
}
1.定义数组变量? ?int score_list[5] = {20, 5, 10, 15, 30};
2,进入for循环??for(int i = 0; i < 5; i++){
3.进行判断,score_list[0]的值是20,大于10,不执行判断语句??if(score_list[i] < 10){
4执行打印语句? ?printf("%d\n", score_list[i]);
int scorr_list[5]={20,5,10,15,30};
for(int i=0;i<5,i++);
if(score_list[i]<10){
printf("game over\n");
break;
}
printf("%d\n",score_list[i]);
}
5.for循环的第二次”小“循环? ?for(int i = 0; i < 5; i++){?
6.进行判断,score_list[1]的值是5,小于10? ?if(score_list[i] < 10){
7.执行打印语句? ?printf("game over\n");
8.执行break语句,终止for循环? ?break;
1.3
同样的,while循环中也可以使用break来跳出循环;
一般用法是在边界条件之外再加一个循环终止的条件,这样就能在循环的边界条件(主要条件)以外,再增加一个终止循环的条件(特殊条件)。
int score_list[5]={20,30,5,15,40};
int count=0;
while(true){
if(score_list[count]==5){
printf("game over\n");
break;
}
printf("%d\n",scoer_list[count]);
count++;
}
1.定义数组和计数器count? ?
int score_list[5] = {20, 30, 5, 15, 40};
int count = 0;
2.while循环的关键字? ? while
3.判断条件为? ??true
4.嵌套在while循环内部的if判断
if(score_list[count] == 5){
printf("game over");
break;
}
5.while循环内部剩下的代码
printf("%d\n", score_list[count]);
count++;
上面的while循环和for循环实现的类似的功能,同样是循环遍历整个数组,以及在某个条件下终止循环。
break的作用是终止整个循环,如果我们不想终止整个循环,只想跳过某次循环,我们就需要用到continue来控制循环的执行顺序。
2.continue
2.1
continue
是结束本次循环,继续下一次循环,实际上整个循环并没有停止。
就像打游戏,有很多条命,死了一条命以后,还可以从头开始打。
2.2
int score_list[5]={20,30,5,,1,5};
for(int i=0;i < 5; i++){
if(score_list[i] < 10 ){
printf("game over\n");
contiune;
}
printf("%d\n",score_list[i]);
}
1.定义一个整型数组? ??int score_list [5] = {20,30,5,1,5}
2.进入for循环? ??for(int i = 0;i < 5;i++){
3.if判断语句
if(score_list[i] < 10){
printf("game over\n");
continue;
}
4.continue关键字? ?continue
5.循环中剩下的代码,打印输出分数? ?printf("%d\n", score_list[ i ])
2.3
比如一个循环一共要执行5次,在第2次触发了break语句,剩下的3,4,5次就不会执行了;
同样在第2次触发了continue语句,程序只是跳过了第2次循环剩下的部分,还是会继续执行第3,4,5次。
我们来看看continue里面的代码执行顺序:
int score_list[3] = {20,5,10};
for(int i = 0;i < 3;i++){
if(score_list[i] < 10){
printf("game over\n");
continue;
}
printf("%d\n", score_list[i]);
}
1.定义整型数组? ??int score_list[3] = {20,5,10}
2.开始for循环? ??for(int i = 0;i < 3;i++){
3.第一次小循环里面的判断,条件不成立? ?if (score_list[ i ] < 10){
4.执行if外面的printf语句? ??printf ("%d\n", score_list[ i ])
int score_list[3] = {20,5,10};
for(int i = 0;i < 3;i++){
if(score_list[i] < 10){
printf("game over\n");
continue;
}
printf("%d\n", score_list[i]);
}
5.for循环中的第二次小循环? ??for(int i = 0;i < 3;i++){
6.判断条件成立,执行if判断的代码块? ??if(score_list[i] < 10){
7.输出”game over“? ?printf("game over\n")
8.执行continue,跳过本次循环(跳过下面的printf语句)??continue
int score_list[3] = {20,5,10};
for(int i = 0;i < 3;i++){
if(score_list[i] < 10){
printf("game over\n");
continue;
}
printf("%d\n", score_list[i]);
}
9.继续for循环,第三次小循环? ? ?for(int i = 0;i < 3;i++){
10.判断条件不成立? ??if (score_list[ i ] < 10){
11.执行if外的printf语句? ??printf("%d\n", score_list[ i ])
12.回到for循环的条件判断,循环结束? ?for(int i = 0;i < 3;i++){
2.4
在while
循环中添加continue
语句也是类似的。
我们看看while循环中的continue使用:
int score_list[5] = {20, 30, 5, 1, 5};
int count = 0;
while(count < 5){
if(score_list[count] == 5){
printf("game over");
continue;
};
printf("%d\n", score_list[count]);
count++;
};
1.定义数组和变量
int score_list[5] = {20, 30, 5, 1, 5};
int count = 0;
2.开始while循环,边界条件为count == 5
while(count < 5){
3.在判断条件中写入continue
我们可以通过break
和continue
来对循环的执行顺序进行更精细化的控制。
如果用一个词语来形容break
和continue
的话,break对应的就是终止,一旦执行到break,整个循环就被终止了。
continue
对应的是跳过,一旦代码执行到continue,它就会跳过本次循环的剩下代码,继续下一次循环。
3.易错点
当?break
?关键字用于?while、for 循环时,会终止当前层次的循环。
break 关键字通常和 if 语句一起使用,即满足条件时便跳出当前层次的循环。
在多层循环中,一个 break 语句只向外跳一层。
break
只能用于循环体和switch,除这两种情况外,不能用于任何其他语句中。
continue?
语句的作用是跳过某一次循环中剩余的语句而强制进入下一次循环。
4.思维导图
在撰写这篇文章时,我参考了《白纸编程》这个app的观点和思想,我要感谢他们对我的启发和帮助。?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!