C语言入门Day_17 循环的控制

news2024/10/12 16:25:25

目录

前言

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的观点和思想,我要感谢他们对我的启发和帮助。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/992849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据治理-数据架构-企业数据架构

是什么 数据架构定义了对组织非常重要元素的标准术语和设计。企业数据架构的设计中包括业务数据描述&#xff0c;如数据的收集、存储、整合、移动和分布。 当数据在组织中通过源或者接口流动时&#xff0c;需要安全、集成、存储、记录、分类、共享的报表和分析&#xff0c;最终…

3D目标检测数据集 KITTI(标签格式解析、点云转图像、点云转BEV)

本文介绍在3D目标检测中&#xff0c;理解和使用KITTI 数据集&#xff0c;包括KITTI 的基本情况、下载数据集、标签格式解析、点云转图像、点云转BEV。 目录 1、KITTI数据集中3D框可视化的效果 2、先看个视频&#xff0c;了解KITTI 的基本情况 3、来到KITTI官网&#xff0c;下…

C++ 11:多线程相关问题

目录 一. 线程类thread 1.1 thread的一些接口函数 2.2 通过thread创建多线程 二. this_thread 三. 互斥锁与原子操作 3.1 多线程中的加锁与解锁 3.1.1 mutex类 3.1.2 lock_guard 类 3.3 原子性操作 四. 条件变量 4.1 线程互斥的缺陷 4.2 condition_variable 实现线程…

图片mask任务和自监督损失函数MAE、Beit、MarkFeature、DINO、DINOv2

MAE (Masked Autoencoders Are Scalable Vision Learners) 来自Masked Autoencoders Are Scalable Vision Learners&#xff0c;Our loss function computes the mean squared error (MSE) between the reconstructed and original images in the pixel space. 几个关键点&…

无涯教程-JavaScript - IMSUB函数

描述 IMSUB函数以x yi或x yj文本格式返回两个复数的差。减去复数时,实数和虚数系数分别相减,即从复数a bi中减去复数c di的方程为- (a bi)-(c in)(a-c)(b-d)我 语法 IMSUB (inumber1, inumber2)争论 Argument描述Required/OptionalInumber1The complex number from …

【C++】可变参数模板

2023年9月9日&#xff0c;周六下午 这个还是挺难学的&#xff0c;我学了好几天... 在这里我会举大量的示例程序&#xff0c;这样可以有一个更好的理解&#xff0c; 不定期更新。 目录 推荐文章&#xff1a; 示例程序一&#xff1a;拼接字符串 示例程序二&#xff1a;求整…

Python散点图

散点图 散点图是指在回归分析中&#xff0c;数据点在直角坐标系平面上的分布图&#xff0c;散点图表示因变量随自变量而变化的大致趋势&#xff0c;据此可以选择合适的函数对数据点进行拟合。用两组数据构成多个坐标点&#xff0c;考察坐标点的分布&#xff0c;判断两变量之间…

基于Java+SpringBoot+Vue前后端分离农产品直卖平台设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

气膜建筑为什么被称为低碳环保建筑?

近年来&#xff0c;环保理念逐渐深入人心以及国家对于环境保护力度的加强&#xff0c;绿色建筑也得到了发展。其中&#xff0c;气膜建筑的建设更是进入了科技化、标准化与國际化发展时期&#xff0c;气膜建筑的使用能将建筑工程建设推向了一个新的高潮&#xff0c;使得公益性和…

业务架构图是什么?用什么软件制作比较好?

​一 业务架构图是什么&#xff1f; 1.1业务架构图简介 业务架构图是一种可视化表达方法&#xff0c;用于描述一个企业或产品的业务活动、流程、系统、数据和关系。它将业务流程、职能、数据流动以及系统之间的交互关系可视化&#xff0c;帮助人们更好地理解业务运作的全…

Claude 2,它有 GPT-4 一些无法超越的能力

文章目录 场景1&#xff1a;处理长文本场景2&#xff1a;上传文件场景3&#xff1a;进行冗长的多轮对话场景4&#xff1a;我的提示词里涉及2021年9月之后的信息 场景1&#xff1a;处理长文本 和 ChatGPT 相比&#xff0c;Claude 2 最大的优势就是它高达 10 万的 Token 数量。要…

工程可以编译通过,但是Vscode依然有波浪线提示

前言 &#xff08;1&#xff09;我们在使用Vscode进行开发的时候&#xff0c;命名文件成功编译通过了&#xff0c;但是Vscode还是有波浪线的提示。 &#xff08;2&#xff09;其实成功编译通过就行&#xff0c;但是肯定还会存在一些强迫症患者&#xff0c;硬要消除这个报错。接…

Linux Ubuntu20.04深度学习环境快速配置命令记录

1、更新系统包 sudo apt-get updatesudo apt-get upgrade 2、安装显卡驱动 使用apt方式安装驱动&#xff0c;多数情况不容易成功&#xff0c; 使用一下方法更佳&#xff1a; 1.查看合适显卡的驱动版本 ubuntu-drivers devices NVIDIA GeForce 驱动程序 - N 卡驱动 | NVI…

Qt案例-编译阿里云OSS对象存储C++ SDK源码,并进行简单下载,上传数据,显示进度等相关功能

项目中用到了阿里云OSS对象存储来保存数据&#xff0c;由于以前没用过这个库&#xff0c;就下载了C版的sdk源码重新编译了一次&#xff0c;并使用Qt调用&#xff1b;不得不说这可能是我编译源码最轻松的一次。 目录标题 简述OSS图形化管理工具编译源码Qt 添加引用常用 Endpoint…

JVM类加载和双亲委派机制

当我们用java命令运行某个类的main函数启动程序时&#xff0c;首先需要通过类加载器把类加载到JVM&#xff0c;本文主要说明类加载机制和其具体实现双亲委派模式。 一、类加载机制 类加载过程&#xff1a; 类加载的过程是将类的字节码加载到内存中的过程&#xff0c;主要包括…

基于SSM的物流管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

Python判断多个文件夹的文件夹名是否包含“分公司”或“营销中心”怎么处理?(方法一)...

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 晓畅军事&#xff0c;试用于昔日。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python最强王者群【哎呦喂 是豆子&#xff5e;】问了一个Python自…

ASUS华硕天选4笔记本FX507VU FX707V原厂Win11系统

自带网卡、显卡、声卡等所有驱动、出厂主题壁纸LOGO、Office办公软件、华硕电脑管家、奥创控制中心等预装程序 链接&#xff1a;https://pan.baidu.com/s/1KwFu-39x7UJsFKN4BQMoBQ?pwdf5xa 提取码&#xff1a;f5xa

基于Java+SpringBoot+Vue前后端分离库存管理系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

《Graph of Thoughts: Solving Elaborate Problems with Large Language Models》中文翻译

《Graph of Thoughts: Solving Elaborate Problems with Large Language Models》- 思维图&#xff1a;用大型语言模型解决复杂的问题 论文信息摘要1. 介绍2. 背景及符号2.1 语言模型和情境学习 3. GoT 框架3.1 推理过程3.2 思想转变3.3 评分和排名思路 4. 系统架构及扩展性4.1…