C语言入门Day_17 循环的控制

2023-12-21 16:33:02

目录

前言

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"并终止循环结构。

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

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

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

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

3.易错点

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

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

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

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

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

4.思维导图

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

文章来源:https://blog.csdn.net/fantastic_little/article/details/132476369
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。