• C语言入门Day_17 循环的控制


    目录

    前言

    1.break

    2.continue

    3.易错点

    4.思维导图


    前言

    我们知道当循环判断的边界条件不成立以后,循环就结束了。除此以外,我们如果想要提前结束循环,或者在循环中跳过某一次循环代码的执行,应该怎么做呢?

    假如我们设计了一个游戏,游戏机制是,当某个关卡得分低于10分时,就终止(game over);否则游戏就继续运行。

    这事后我们就需要用到break关键字

    1.break

    1.1

     break关键字的作用是让当前的while或者for循环停止

    使用break就像是在打游戏时,被boss打败,游戏结束退出。

    break会结束所在的循环,就像跳出这个循环,然后执行循环后面的代码。

    1.2

    这6行代码遍历整型数组score_list,并依次输出其中的数字,如果列表中有小于10的数字,就输出字符串"game over"并终止循环结构。

    1. int score_list[5]={20,30,5,15,10};
    2. for (int i=0;i < 5;i++ ){
    3. if(score_list[i] < 10){
    4. printf("game over\n");
    5. break;
    6. }
    7. printf("%d\n",scoer_list[i])
    8. }

    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循环的代码执行顺序以外,新增了跳出/终止的顺序:

    1. int scorr_list[5]={20,5,10,15,30};
    2. for(int i=0;i<5,i++);
    3. if(score_list[i]<10){
    4. printf("game over\n");
    5. break;
    6. }
    7. printf("%d\n",score_list[i]);
    8. }

    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]);

    1. int scorr_list[5]={20,5,10,15,30};
    2. for(int i=0;i<5,i++);
    3. if(score_list[i]<10){
    4. printf("game over\n");
    5. break;
    6. }
    7. printf("%d\n",score_list[i]);
    8. }

    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来跳出循环

    一般用法是在边界条件之外再加一个循环终止的条件,这样就能在循环的边界条件(主要条件)以外,再增加一个终止循环的条件(特殊条件)。

    1. int score_list[5]={20,30,5,15,40};
    2. int count=0;
    3. while(true){
    4. if(score_list[count]==5){
    5. printf("game over\n");
    6. break;
    7. }
    8. printf("%d\n",scoer_list[count]);
    9. count++;
    10. }

    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

    1. int score_list[5]={20,30,5,,1,5};
    2. for(int i=0;i < 5; i++){
    3. if(score_list[i] < 10 ){
    4. printf("game over\n");
    5. contiune;
    6. }
    7. printf("%d\n",score_list[i]);
    8. }

    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里面的代码执行顺序:

    1. int score_list[3] = {20,5,10};
    2. for(int i = 0;i < 3;i++){
    3. if(score_list[i] < 10){
    4. printf("game over\n");
    5. continue;
    6. }
    7. printf("%d\n", score_list[i]);
    8. }

    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 ])

    1. int score_list[3] = {20,5,10};
    2. for(int i = 0;i < 3;i++){
    3. if(score_list[i] < 10){
    4. printf("game over\n");
    5. continue;
    6. }
    7. printf("%d\n", score_list[i]);
    8. }

    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

    1. int score_list[3] = {20,5,10};
    2. for(int i = 0;i < 3;i++){
    3. if(score_list[i] < 10){
    4. printf("game over\n");
    5. continue;
    6. }
    7. printf("%d\n", score_list[i]);
    8. }

    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使用:

    1. int score_list[5] = {20, 30, 5, 1, 5};
    2. int count = 0;
    3. while(count < 5){
    4. if(score_list[count] == 5){
    5. printf("game over");
    6. continue;
    7. };
    8. printf("%d\n", score_list[count]);
    9. count++;
    10. };

    1.定义数组和变量

    int score_list[5] = {20, 30, 5, 1, 5};

    int count = 0;

    2.开始while循环,边界条件为count == 5

    while(count < 5){

    3.在判断条件中写入continue

    我们可以通过breakcontinue来对循环的执行顺序进行更精细化的控制。

    如果用一个词语来形容breakcontinue的话,break对应的就是终止,一旦执行到break,整个循环就被终止了。

    continue对应的是跳过,一旦代码执行到continue,它就会跳过本次循环的剩下代码,继续下一次循环。

    3.易错点

     break 关键字用于 while、for 循环时,会终止当前层次的循环。

    break 关键字通常和 if 语句一起使用,即满足条件时便跳出当前层次的循环。

    在多层循环中,一个 break 语句只向外跳一层。

    break只能用于循环体和switch,除这两种情况外,不能用于任何其他语句中。

    continue 语句的作用是跳过某一次循环中剩余的语句而强制进入下一次循环。

    4.思维导图

    在撰写这篇文章时,我参考了《白纸编程》这个app的观点和思想,我要感谢他们对我的启发和帮助。 

  • 相关阅读:
    golang学习之路1-环境安装及Helloword
    项目开源!基于PaddleDetection打造实时人体姿态检测的多关节控制皮影机器人
    19-29-k8s-基本命令-yaml-kubectl
    学生DW静态网页设计——html+css+javascript+jquery+bootstarp马尔代夫旅游响应式网站
    SSM网上在线水果店商城超市网站平台
    AUTOSAR汽车电子嵌入式编程精讲300篇-基于FPGA的LIN总线控制器设计与验证
    什么是副业思维,副业应该怎么做,用创业思维分析副业的可行性
    C# 取消一个不带CancellationToken的任务?
    Git基本操作
    Unity切换到另一个场景的时候,发现该场景变暗了
  • 原文地址:https://blog.csdn.net/fantastic_little/article/details/132476369