再学C语言25:分支和跳转——continue、break和switch

news2024/9/20 10:34:56

一般地,进入循环体后,在下次循环判断之前程序执行循环体中所有语句

一、continue语句

continue:循环中,当运行到该语句时,其将导致剩余的迭代部分被忽略,开始下一次迭代

如果continue处于嵌套结构中,其仅影响包含它的最里层的结构

continue语句可用于3中循环形式中(while、for、do-while)

示例代码:

#include <stdio.h>
int main(void)
{
    int i;
    for(i = 0; i < 10; i++)
    {
        if(i == 5)
        {
            continue;
        }
        printf("%d \n", i);
    }
    return 0;
}

运行结果:

211a3f19f28c43d986e07ceb29887eea.png

对于while循环和do-while循环,continue语句之后发生的动作是求循环判断表达式的值

对于for循环,continue语句之后发生的动作是先求更新表达式的值,然后再求循环表达式的值

二、break语句

循环中,break语句导致程序终止包含它的循环,并进行程序的下一阶段

示例代码:

#include <stdio.h>
int main(void)
{
    int i;
    for(i = 0; i < 10; i++)
    {
        if(i == 5)
        {
            break;
        }
        printf("%d \n", i);
    }
    return 0;
}

运行结果:

a92c0557eb6e42bbbb084555f82205b1.png

如果break语句位于嵌套循环里,其只影响包含它的最里层的循环

与continue一样,break的使用是为了简化代码,当其反而使代码更复杂时,不要使用

break语句使程序直接转到紧接着该循环后的第一条语句继续执行

三、switch语句

相比if-else if-else if...这样的语句,使用switch更加方便

示例代码:猜奖系统

#include <stdio.h>
int main(void)
{
    int num;
    printf("enter a number between 1 and 4. \n");
    scanf("%d", &num);
    if((num > 0) && (num < 5))
    {
        switch(num) // 搜索与num匹配的标签,然后程序跳到那一行
        {
            case 1:
                printf("thanks for participating. \n");
                break;
            case 2:
                printf("try again. \n");
                break;
            case 3:
                printf("congratulations, you guessed it! \n");
                break;
            case 4:
                printf("guessed wrong. \n");
                break;
            default:
                break;
        }
    }
    else
    {
        printf("the number is out of range, bye bye. \n");
    }
    
    return 0;
}

运行结果:

81b0efb5506046b98aff57aa96d6693f.png

break的作用:引导程序脱离switch语句,跳到switch之后的下一条语句;如果没有break语句,从相匹配的标签到switch末尾的每一条语句都将被执行

示例代码:

#include <stdio.h>
int main(void)
{
    int num;
    printf("enter a number between 1 and 4. \n");
    scanf("%d", &num);
    if((num > 0) && (num < 5))
    {
        switch(num)
        {
            case 1: // 标签
                printf("thanks for participating. \n");
                break;
            case 2:
                printf("try again. \n");
                break;
            case 3:
                printf("congratulations, you guessed it! \n");
                //break;
            case 4:
                printf("guessed wrong. \n");
                break;
            default:
                break;
        }
    }
    else
    {
        printf("the number is out of range, bye bye. \n");
    }
    
    return 0;
}

运行结果:

4dbedb5c9b2d431395f08c7ee32c8194.png

break语句用于循环和switch,continue语句仅用于循环 

圆括号中的switch判断表达式应该具有整数值(包括char类型)

case标签必须是整形(包括char)常量或者整数常量表达式,不能使用变量作为case标签

switch结构的一般形式:

switch(interger expression)
{
    case constant1:
        statements
    case constant2:
        statements
    default:
        statements
}

switch和else if:

如果选择是基于求一个浮点型变量或表达式的值,就不能使用switch

如果变量必须落入某个范围,使用switch也不方便

 

 

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

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

相关文章

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型

文章目录一、Self-Attention 各式各样的变型二、How to make self-attention efficient&#xff1f;三、Notice四、Local Attention / Truncated Attention五、Stride Attention六、Global Attention七、Many Different Choices八、Can we only focus on Critical Parts?8.1 C…

车牌识别应用搭建(含模型和源码)

车牌识别应用搭建 内容说明 本示例旨在展示如何在 DeepStream SDK 版本不低于 5.0.1 的情况下使用分级模型进行检测和分类。 本例中的模型均为TAO3.0模型。 PGIE(car detection) -> SGIE(car license plate detection) -> SGIE(car license plate recognization) 该流…

Linux系统下的rpm/yum管理

文章目录Linux系统下的rpm管理1.介绍2.rpm包的简单查询指令3.rpm包的其它查询指今4.卸载rpm包5.rpm6.yumLinux系统下的rpm管理 1.介绍 rpm用于互联网下载包的打包及安装工具&#xff0c;它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager…

Java 集合的介绍和使用

1.什么是集合&#xff1f; 对一些数据的存储就叫做集合&#xff0c;相比于数组&#xff0c;这是一种动态的集合。 1.可以动态的保存任意多个对象 2.提供一些动态操作集合的方法比如&#xff1a;add ,remove ,set ,get 等。 3.使用集合更加方便&#xff0c;提高代码编写效率。…

创建 ASP.NET Core MVC 项目

目录 一、创建ASP.NET Core MVC项目 二、ASP.NET Core MVC目录结构 一、创建ASP.NET Core MVC项目 打开Visual Studio 2022 点击创建新项目 在列表中找到:ASP.NET Core Web应用(模型-试图-控制器):用于创建包含示例ASP.Net Core Mvc视图和控制器的Asp.NET Core应用程序…

Docker如何安装nacos最新版本2.2.0

本文介绍如何在docker容器下安装部署nacos最新版本2.2.0。一、单机本地配置1.1 拉取nacos镜像执行以下命令从docker远端拉取nacos镜像文件。docker pull nacos/nacos-server1.2 启动nacos镜像执行以下命令&#xff0c;以单机模式启动nacos镜像。docker run -d --name nacos -p …

P5594 【XR-4】模拟赛————C++、Python

目录题目【XR-4】模拟赛题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1样例 #2样例输入 #2样例输出 #2样例 #3样例输入 #3样例输出 #3提示解题思路C的Code运行结果Python的代码运行结果题目 【XR-4】模拟赛 题目描述 X 校正在进行 CSP 前的校内集训。 一共有 nnn …

人工智能算法模型--Minimax(极大极小)搜索算法学习笔记

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; (*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &a…

基于MicroPython的ESP32在OLED上实时刷新温湿度

基于MicroPython的ESP32用起来后&#xff0c;做些小扩展功能&#xff1a; 1、通过DHT11获取温湿度&#xff1b; 2、将获取的温湿度显示在OLED上&#xff1b;并通过定时器&#xff0c;定时刷新&#xff1b; 3、OLED可显示中文&#xff1b; 一、DHT11获取温湿度 这个比较简单&a…

Java泛型详细内容讲解

1.什么是泛型 1.1背景&#xff1a; JAVA推出泛型以前&#xff0c;程序员可以构建一个元素类型为Object的集合&#xff0c;该集合能够存储任意的数据类型对象&#xff0c;而在使用该集合的过程中&#xff0c;需要程序员明确知道存储每个元素的数据类型&#xff0c;否则很容易引…

mysql中的实现字段或字符串拼接的三种方式

一、CONCAT函数concat函数是将多个字段或字符串拼接为一个字符串&#xff1b;但是字符串之间没有任何分隔。concat函数官方介绍-- CONCAT函数的语法如下&#xff1a; CONCAT(str1,str2,...)1.1、拼接非空字段或字符串SELECT CONCAT(字段1,字段2,字段3,...) from 表名;-- 拼接表…

C#构建Web服务项目实战(一)

概述本文通过VS2017&#xff0c;利用C#语言构建一个Web应用项目&#xff08;旧的ASP.NETWeb应用&#xff0c;非微软最新的.NETCore&#xff09;&#xff0c;并演示了如何利用Windows的IIS服务发布项目&#xff08;网站&#xff09;&#xff0c;以及在发布项目&#xff08;允许用…

C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计(三)

C语言及算法设计课程实验三&#xff1a;最简单的C程序设计——顺序程序设计&#xff08;三&#xff09;一、实验目的二、 实验内容2.3、计算存款利息三、 实验步骤3.3、顺序程序设计实验题目3&#xff1a;计算存款利息的实验步骤3.3.1、变量的声明3.3.2、变量的赋值3.3.3、计算…

递归分治时间复杂度主定理法

记录一下以前博客的证明过程&#xff0c;补充一下之前的结论 在算法导论中lgn一般指2为底的对数n&#xff0c;特此说明 以前写的博客记录了一下分治递归时间复杂度的结论&#xff0c;发现少了一个正则条件&#xff0c;而且也不覆盖所有的一般情况 https://blog.csdn.net/qq_1…

乌鸦安全2022年度文章合集

说明 乌鸦安全2022年精选原创文章合集&#xff0c;基本上大部分都是原创&#xff0c;当然还有一部分文章由其他师傅投稿提供&#xff0c;在此感谢各位师傅的投稿和帮助&#xff01; 乌鸦安全2021年度文章合集 你可以在这里找到我&#xff1a; GitHub&#xff1a;https://gi…

开源的工作流都有哪些特征?

开源的工作流是什么&#xff1f;都有什么样的特征和优势特点&#xff1f;众所周知&#xff0c;随着现代化办公管理的兴起&#xff0c;工作效率高的低代码开发平台涌上前线&#xff0c;成为很多企业实现数字化转型和做好数据管理的重要系统。这篇文章主要是围绕开源的工作流方面…

记一次2022某地HVV中的逆向分析

声明&#xff1a;本文仅限于技术讨论与分享&#xff0c;严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负&#xff0c;与本号及原作者无关。 前言 事情是这样的&#xff0c;国庆前期某地HVV&#xff0c;所以接到了客户通知他们收到了钓鱼邮件想要溯源 直接下载…

云视频会议系统私有化实践

点击上方“LiveVideoStack”关注我们▲扫描图中二维码或点击阅读原文▲了解音视频技术大会更多信息编者按&#xff1a;云视频会议系统支持多服务器动态集群部署&#xff0c;并提供多台高性能服务器&#xff0c;大大提升了会议稳定性、安全性、可用性。视频会议为用户大幅提高沟…

(Java高级教程)第三章Java网络编程-第一节2:网络编程必备网络知识2之网络协议分层

文章目录一&#xff1a;生活中的协议分层&#xff08;1&#xff09;生活中的分层1——汉堡包&#xff08;2&#xff09;生活中的分层2——打电话二&#xff1a;网络分层&#xff08;1&#xff09;OSI七层模型&#xff08;2&#xff09;TCP/IP分层模型三&#xff1a;OSI参考模型…

前端基础(六)_流程控制语句(if、if-else、if-else嵌套、switch)

流程控制语句主要分为 : 顺序结构&#xff1a;即按顺序执行代码 ;条件选择结构 ( 分支语句 )&#xff1a;包括 if-else 以及 switch;循环结构&#xff1a;包括 for循环&#xff0c;while&#xff0c;do-while,for-in 等;其他语句&#xff1a; break 和continue。 一、流程控制…