C控制语句(if,switch,goto)

news2024/9/28 19:27:04

一.if

1.if循环语句格式

if(expression1)

statement1

else if(expression2)

statement2

else if(expression3)

statement3

.

.

.

else

statement(n)

else if 可以使用也可以不是用。

这里我们用一个例子进行讲解

2.if else 注意事项

If else if else之间只允许有一条语句(简单语句或复合语句)

例子

If(x>0)

Printf("Incrementing x:\n");

x++;

Else

Printf("x <= 0\n");

注意编译器吧printf()语句视为if语句的一部分,而把x++;看作一条单独的语句,它不是if语句的一部分。然后,编译器发现else并没有所属的if,这是一个错误。上面的代码应该改写为

If(x>0){

Printf("Incrementing x:\n");

x++;

}

Else

Printf("x <= 0\n");

3.else与if匹配问题

当程序中有许多if和else时候,编译器如何知道if对应哪个else呢

下面我们来看例子

在这个例子当中针对else和上面的if那个进行匹配(如果你自己打的话,你会很快发现它是和第二个if匹配的,因为系统自动帮助你缩进了)

而从结果上面我们也已经看到了,当num 不大于 6 时,系统啥也不会打印。大于6小于12打印one,大于12打印two。

从这里我们也可以总结得出来,else是与离它最近的if匹配的。

因为If else if else之间只允许有一条语句(简单语句或复合语句)。所以简单语句可以不加花括号。也可以加上这样结构会更加明显。

二.switch

1.格式:

switch(expression){

case label1: statement1 //可以使用break跳出switch

case label2: statement2

.

.

.

default: statementn

程序根据expression的值跳转至相应的case标签处。然后,执行剩下的所有语句,除非执行到break语句进行重定向。expression和case标签都必须是整数值(包括char类型),标签必须是常量或完全由常量组成的表达式。如果没有case标签与expression的值匹配,控制权则转至标有default的语句(如果有的话);否则,将转至执行紧跟switch语句后面的语句

可以有多个标签语句,default语句可选

假设如果ch是字母i,switch语句会定位到标签为case'i':位置。由于该标签没有关联break语句,所欲程序流直接执行下一条语句,即i_ct++;。如果ch是字母I,程序流回直接定位到case'I':本质上,两个标签都指向相同的语句

而且,其实case'U'的break语句并不需要。因为即使删除这条break语句,程序流回接着执行switch中的下一条语句,即default: break;所以,可以把case'U'的break语句去掉以缩短代码。

但是从另一个方面看,保留这条break语句可以防止以后在添加新的case是遗漏break语句

三.goto

1.格式

goto label;

.

.

.

label:statement

goto语句使程序控制跳转至相应标签语句。冒号用于分隔标签和标签语句。标签名遵循变量命名规则。标签语句可以出现在goto的前面或后面

一般很少使用goto,一般的用法则是从一组嵌套循环种跳出

while(funct >0)

{

        for(i=1;i<=100;i++)

        {

                for(j=1;j<=50;j++)

                {

                        其他语句

                        If(问题)

                        {

                                Goto help;

                        }

                        其他语句

                }

                其他语句

        }

        其他语句

}

其他语句

Help:语句

在goto的使用上,并不推荐大家使用,因为goto的使用起来容易造成混淆,比较这个语句在程序到处跑,在大量代码的程序中很容易造成理解混乱。

比如这样, 程序进入了死循环,不断打印hello

加上一个条件就好了


好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

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

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

相关文章

Shell - 随时启动 + 固定时间启动脚本

一.引言 有一个线上任务需要在每 10 min内的 5min 后执行&#xff0c;例如 5:10、15:10 ...、55: 10&#xff0c;正常情况下需要查看 Clock Time&#xff0c;待时间到达 5min 后手动启动&#xff0c;下面实现随时启动脚本&#xff0c;定时在 x5:10 点执行。 二.实现 A.固定 5…

【第0天】SQL快速入门-了解MySQL存储引擎(SQL 小虚竹)

回城传送–》《32天SQL筑基》 文章目录零、前言一、什么是数据库引擎二、MYSQL中有哪些数据库引擎2.1、MyISAM2.2、Memoey2.3、InnoDB三、MyISAM和InnoDB的区别3.1、MYSQL版本支持默认引擎不同MyISAMInnoDB3.2、数据的存储结构不同MyISAMInnoDB3.3、存储空间的消耗不同MyISAMIn…

新闻稿写作指南

当你想要传达一则新闻&#xff0c;写一份新闻稿是非常必要的。新闻稿的目的是让读者了解某个事件或信息&#xff0c;以及提供与之相关的背景信息和重要细节。以下是新闻稿的写作指南&#xff0c;帮助你写出一份清晰、简洁、有价值的新闻稿。1、选择一个有新闻价值的主题你的新闻…

MySQL参数优化之join_buffer_size

1.查看当前值 show variables like %join_buffer_size%mysql默认该设置为128 或 256 或512k&#xff0c;各个版本有所出入 2.作用范围 在mysql中表和表进行join时候&#xff0c;无论是两个表之间还是多个表之间&#xff0c;join的情况大致分为下面几种情况 join key 有索引 …

leaflet 设置一个图层或者多个图层的透明度(075)

第075个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中如何设置一个图层或者多个图层的透明度,利用了layer的setOpacity方法。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共137行)相关API参考:专…

Windows保护机制GS:原理及SEH异常处理突破

前言 本次文章只用于技术讨论&#xff0c;学习&#xff0c;切勿用于非法用途&#xff0c;用于非法用途与本人无关&#xff01; 所有环境均为本地环境分析&#xff0c;且在本机进行学习。 GS机制并没有对SEH提供保护&#xff0c;换句话说我们可以通过攻击程序的异常处理达到绕…

【java 高并发编程之JUC】2w字带你JUC从入门到精通

点击查看脑图目录地址,实时更新 1 什么是 JUC 1.1 JUC 简介 在 Java 中&#xff0c;线程部分是一个重点&#xff0c;本篇文章说的 JUC 也是关于线程的。JUC 就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包&#xff0c;JDK 1.5 开始出现的。 1.2 进程与…

Leetcode_part1

Content [1. Two Sum](https://leetcode.com/problems/two-sum/)Solution 1Solution 2[递归: 17. 电话号码的字母组合](https://leetcode.com/problems/letter-combinations-of-a-phone-number/)Solution 1 暴力Soulution 2 回溯Solution 3 队列[18. 四数之和](https://leetcod…

app截图+识别截图中的文字

在自动化测试的过程中&#xff0c;我们会经常遇到需要进行文字识别的场景&#xff0c;比如 识别验证码、识别截图中的文字、读取截图中的数值 等等&#xff0c;遇到这些情况时我们可以如何处理呢&#xff1f; 本机要有PaddleOCR环境&#xff0c;PaddleOCR可参考我另一篇 Padd…

存储类别、链接与内存管理(二)

0、前言概要 本篇来自于我的另外一篇博客存储类别、链接与内存管理&#xff08;一&#xff09;的续篇&#xff0c;主要分析了C语言中的不同存储类别、关键字以及使用的注意事项 1、自动变量 &#xff08;1&#xff09;属性 自动存储期、块作用域、无连接 &#xff08;2&a…

vue项目实现会议预约(包含某天的某个时间段和某月的某几天)

一、一天的时间段预约 会议预约有以下操作&#xff1a; 1.点击预约按钮&#xff0c;弹窗最近一周的预约时间点&#xff08;半小时一个点&#xff09;&#xff0c;预约时间为5:00到24:00; 2.超过当前时间的时间点不允许再预约&#xff0c;已经预约的时间不允许再预约&#xff0c…

【C++】类和对象三大特性--继承

文章目录1.继承的概念及定义1.1继承的概念1.2 继承定义1.2.1定义格式1.2.2继承关系和访问限定符1.2.3继承基类成员访问方式的变化2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6. 继承与静态成员7.复杂的菱形继承及菱形虚拟继承虚拟继承解决数…

医疗器械实验室设计规划全了SICOLAB

一、通用型实验室医疗器械物理性能能检测中&#xff0c;有部分通用型试验&#xff0c;可覆盖不同产品检测&#xff0c;这些实验室需要重点考虑、设计。1、微粒检测室微粒检测室用于医疗器械产品微粒检测&#xff0c;包括微粒、落絮、药液滤除率等项目。微粒检测室要求为洁净室&…

学习笔记<二> MySQL学习(3):分库、分表

文章目录为什么分库分表一、垂直分片、水平分片二、常用的数据分片策略三、垂直分表、垂直分库、水平分库、水平分表四、垂直切分、水平切分优缺点五、数据分片规则六、分库分表带来的问题本文参考博主「小Y是我的」的文章&#xff0c;原文链接&#xff1a;https://blog.csdn.n…

Android基础练习解答【1】

文章目录第一章课后练习题一填空题二 判断题&#xff08;正确打√&#xff0c;错误打&#xff09;三 选择题四 简答题第一章课后练习题 一填空题 Android是基于_Linux _ 的移动端开源操作系统。 解答&#xff1a;安卓&#xff08;Android&#xff09;是一种基于Linux内核&…

C语言深度解剖-关键字(7)

目录 switch case 语句 理解&#xff1a; 补充&#xff1a; 深入理解&#xff1a; default 语句&#xff1a; case语句&#xff1a; 总结&#xff1a; do、while、for 关键字 while for do while 各种死循环方法&#xff1a; while for do while getchar 写在…

企业电子招投标采购系统源码之功能模块的描述

功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外部供…

【Spark分布式内存计算框架——Spark SQL】6. 数据处理分析

第四章 数据处理分析 在SparkSQL模块中&#xff0c;将结构化数据封装到DataFrame或Dataset集合中后&#xff0c;提供两种方式分析处理数据&#xff0c;正如前面案例【词频统计WordCount】两种方式&#xff1a; 第一种&#xff1a;DSL&#xff08;domain-specific language&am…

数据库(四)

第五章 MySQL备份恢复 5.1 MySQL日志管理 在数据库保存数据时&#xff0c;有时候不可避免会出现数据丢失或者被破坏&#xff0c;在这样情况下&#xff0c;我们必须保证数据的安全性和完整性&#xff0c;就需要使用日志来查看或者恢复数据了。 数据库中数据丢失或被破坏可能原…

人工智能 LLM 革命前夜:一文读懂ChatGPT缘起的自然语言处理模型Transformer

作者&#xff1a;钟超 阿里集团大淘宝团队 [01] https://web.stanford.edu/~jurafsky/slp3/3.pdf [02] https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html [03] 《自然语言处理&#xff1a;基于预训练模型的方法》车万翔 等著 [04] https://cs.stanfo…