首页
学习
活动
专区
圈层
工具
发布

嘿~这里有一份超实用的 switch 教程,真的好想推荐给你

造成这个结果的原因在于上面你得程序首先了执行了第一个 if 中的语句,之后再执行第二个 if 中的语句;而不是像之前的if…else if中那样,只执行一个条件分支中的语句。...是可选的,如果没有 default,并且所有的 case 均不匹配,那么 switch 语句不执行任何动作。...所以如果只希执行某一个 case 后面的语句和程序块,还需要配合一个 break 语句,让代码在适当的位置跳出 switch,即如下所示 ?...然而,这段代码实际功能却与编程者的意图相去甚远。原因在于 C 语言中else 始终与同一对括号内最近的未匹配的 if 结合。...如果要得到原来的例子中由代码缩进体现的编程者本意的结果,应该这样写: ? 现在,else 与第一个 if 结合,即使它离第二个 if 更近也是如此,因为此时第二个 if 已经被括号“封装”起来了。

91420

抽丝剥茧C语言(中阶)分支语句和循环语句

{ return y; } 这两个代码其实返回的结果都是一样的,但是第一个一时间很难让人接受,其实仔细分析就知道,if语句执行完返回的是x,我们清楚,函数中只能返回一个值,也就是说返回了x就不会返回...3.2.2 default子句 之前可能就有家人们疑惑了,如果表达的值与所有的case标签的值都不匹配怎么办? 其实也没什么,结构就是所有的语句都被跳过而已。...程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。 但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?...:只打印数字字符,跳过其他字符的。...代码3:这段代码我们只打印了10个hehe,为什么呢?

1.8K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Bash 老司机也可能忽视的 10 大编程细节

    虽然加上空格也不会引起语法错误,但很可能造成意想不到的结果。例如 VARIABLE= 2 这个语句,解释器很可能会将一个空字符串赋值给 VARIABLE,然后运行一个名字叫 2 的脚本。...最后一种是局部变量,这种变量通常只在一个循环语句或者 Bash 函数中有效。一般不常用。 █ 4. 活用命令替换 通常我会用下面这段 for 循环打印输出 1-10 这 10 个数字。...实际上,除了常见的 test 命令,所有返回固定数值的命令都可以作为 if 语句的判断条件。...这时就可以用 set -u 表示 Bash 不执行未定义的变量。 除了 -e 和 -u 之外,还有 set -x 表示每条命令执行之前必须先打印命令内容。...此外还可以通过 set -o 显示所有可以设置的选项。 这也是为什么许多 shell 脚本都以 set -eu 或者 set -eux 等做为开头的原因,因为这样就可以让脚本运行在更安全的环境下。

    97260

    是不是Bash编程老司机,看完这10条细节就知道了

    虽然加上空格也不会引起语法错误,但很可能造成意想不到的结果。例如 VARIABLE= 2 这个语句,解释器很可能会将一个空字符串赋值给 VARIABLE,然后运行一个名字叫 2 的脚本。...最后一种是局部变量,这种变量通常只在一个循环语句或者 Bash 函数中有效。一般不常用。 4. 活用命令替换 通常我会用下面这段 for 循环打印输出 1-10 这 10 个数字。...实际上,除了常见的 test 命令,所有返回固定数值的命令都可以作为 if 语句的判断条件。...当然,如果变量值不包括空格,那不带引号也能得到同样的结果,但毕竟带上双引号会让程序更可靠。 8....此外还可以通过 set -o 显示所有可以设置的选项。 这也是为什么许多 shell 脚本都以 set -eu 或者 set -eux 等做为开头的原因,因为这样就可以让脚本运行在更安全的环境下。

    1.2K71

    Go 语言中的条件判断和for 循环

    让我们来看一个判断年龄的简单示例:在上面的代码中,因为 age 的结果为 true,所以程序会打印“未成年”。如果将 age 的值改为 22,则条件不成立,if 块内的代码不会被执行。...3、嵌套 ifif 语句内部可以包含另一个 if 语句,形成嵌套结构,以实现更复杂的逻辑判断。这个嵌套 if 的逻辑与前面使用 && 的复合条件是等价的,但在某些场景下,嵌套结构能让代码层次更分明。...2.1 模拟 while (condition)通过省略初始化语句和后置语句,只保留条件表达式,for 循环就等同于 while 循环。这段代码的执行效果与前一个例子完全相同。...的值等于 value2 时执行...default: // 所有 case 都不匹配时执行}expression:一个表达式,其结果将与各个 case 的值进行比较。...这意味着一旦匹配到一个 case,执行完其代码后就会退出 switch,不会“掉落”到下一个 case。

    28220

    【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“

    一、if 语句 1.1 if 表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏代码示例: if ( 表达式) 语句 在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执...当你看到这段代码时,你可能会认为答案是"haha"对吧?因为代码中的逻辑是如果a不等于0,那么就执行else子句并打印"haha"。但是当你运行这段代码时,实际的输出却是什么都没有。...那么事实真的是这样吗? 看结果: 但是当你去运⾏代码,输出的结果是:啥都不输出来。 哎这是为什么鸭? 这是悬空else的问题,如果有多个if匹配。...上面的代码排版让if和else对齐,可以记住这样一条规则,else总是跟最接近else和第一个if语句对齐,让我们在语句不成立的时候自然想到执行else子句,打印else是和第一个if匹配的,当进行匹配的时候...switchswitch 语句是⼀种特殊形式的的elif…else 结构,⽤于判断条件有多个结果的情况。它把多重else改成更易⽤、可读性更好的形式。

    31310

    Python 自动化指南(繁琐工作自动化)第二版:二、流程控制

    但是在学习流程控制语句之前,你首先需要学习如何表示那些是和否选项,并且你需要理解如何将那些分支点写成 Python 代码。为此,让我们研究一下布尔值、比较运算符和布尔运算符。...所有流程控制语句都以冒号结尾,后跟一个新的代码块(子句)。这个if语句的子句是带有print('Hi, Alice.')的块。图 2-2 显示了这段代码的流程图。...图 2-8:if语句代码的流程图 图 2-9:while语句代码的流程图 带有if语句的代码检查条件,如果条件为真,它只打印一次Hello, world.。...在其他程序中,条件可能永远不会真正改变,这可能是一个问题。让我们看看如何打破while循环。 break语句 让程序执行尽早脱离while循环的子句有一个捷径。...当某个条件求值为True时,你也可以在一个循环中反复执行代码。如果你需要退出一个循环或者跳回到循环的开始,那么break和continue语句是很有用的。 这些流程控制语句将让您编写更智能的程序。

    2.7K50

    Python教程第4章 | 条件语句、循环语句和函数

    一、条件语句 1、什么是条件语句 Python 条件语句跟其他语言基本一致的,都是通过一条或多条语句的执行结果( True 或者 False )来决定执行的代码块。...很明显,空字符串是为 False 的,不符合条件语句,因此不会执行到 print('Hello Python') 这段代码。...如果是这个需求,我个人还是不太建议这样使用 if 嵌套的,因为这样代码量多了,而且嵌套太多,也不方便阅读代码。 二、循环语句 1、什么是循环语句 一般编程语言都有循环语句,为什么呢?...in 'Hello 程序员': print(letter) 输出的结果如下: H e l l o 程 序 员 从打印结果来看,它就是把字符串 Hello 程序员 一个一个字符的打印出来。...假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值 具体看例子: def print_user_info( name , age , sex = '男' ): # 打印用户信息

    1.8K10

    C语言初阶——分支语句(if,switch)

    ,可能是这样想的:a的值为0,if(a==1)的结果为假,所以执行else语句,打印haha。...那结果是这样吗? 为什么啥都没打印? 因为else的匹配:else是和它离的最近的if匹配的。...也就是说,上面代码中的else是和第二个if匹配的,第一个if的条件表达式为假的话,它后面的那条语句,也就是下一个if语句,自然就不执行了,当然与它匹配的else也就不会执行了,所以什么都没打印。...(3)default子句 1.如果表达的值与所有的case标签的值都不匹配怎么办? 其实也没什么,结果就是所有的语句都被跳过而已。...我们试一下,还是上面那段代码: 程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。 2.但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?

    21410

    抽丝剥茧C语言(初阶 中)

    让我们来运行这段代码试一试: 看到第二个打印出来的内容我们就疑惑了,心里想我明明要打印lol这个字符串可是却出来一堆乱码,这是怎么回事呢?...C语言风格的注释 /xxxxxx/ 缺陷:不能嵌套注释 C++风格的注释 //xxxxxxxx 可以注释一行也可以注释多行 注释通常用来解释你这段代码是干嘛的,让你的代码更能让人读懂,能让你的同事更好的和你合作...C语言同样也有循环语句: while语句-讲解 for语句(后期讲) do … while语句(后期讲) 让你打印20000次我要继续努力敲代码这句话 你不可能真的一遍一遍的去敲printf(...这是地方是函数的返回类型,我们这段代码要算加法,运行完之后我们要返回一个值,return就是返回的意思,后面空格加上你要返回的就可以了,不可只能返回一个值,一旦返回,return后面的代码将不会被执行,...转义字符虽然作用多,但是别忘记只要加了 \ 这个符号你可能就会少打印一个字母或者是数字,多打印了一些奇怪的东西. 注释要好好利用,不仅仅可以快速屏蔽代码,还可以让人更容易读懂你的代码!

    80600

    数学建模-------MATLAB分支循环&&断点调试

    我们这个只是使用了if,else语句,十分简洁; 这段代码我们使用了if,elseif语句,这样同样可以实现这个排序的功能; 其实对于初学者而言,第二种的代码多了一些,但是他的阅读以及对于程序的理解会更加的直观...,我们需要知道的是使用elseif语句,后面是必须要有判断的条件的,但是如果直接使用else,就不需要添加任何的条件了; (3)代码风格 对于我们的语句,尤其是循环语句,好的代码风格能够让人赏心悦目,我们在写代码的时候一定要注意缩进以及留白...2.switch--case语句 (1)基本的用法 这个就是switch的一个简单的适用的场景,我们使用case找到与之相互匹配的条件,最后打印是这个季度,我们推荐使用的是函数disp: 实际上,因为这个季节是随机生成的...,我们可以定义变量,最后打印变量,但是这样做以后,打印的结果不会很干净,不像我们的disp函数,他只会打印我们语句里面的内容,但是如果定义变量的话,变量和语句都会打印,显然就不如disp的效果好(打印结果如下所示...后面的语句,这个案例提供了3种写法,第一种会被理解为一个元胞数组,所以不会打印A等级,第二种就是枚举所有的可能情况,可以打印对应的等级;第三种就是使用num2cell把数组转换为元胞数组,这里比较容易想的是第一种写法

    21700

    【C语言】分支循环总结

    好,接下来我们来看看这段代码:  是否认为会打印hehe?...NONONO,我们仔细来看看,if语句的判断条件是直接赋值了,把3赋值给a,我们刚说过,0为假,非0为真,我们自然要执行if的里面的语句,我们来看看运行结果:  如果要打印hehe的话,我们应该改成这样子...是一些case语句: 如下: case 整形常量表达式 : 语句 ;  我们来输入1看看结果是什么:  这不对啊,按我们的理解来说,我们输入1,应该只打印出星期一,后面不会打印啊。...default子句 如果表达的值与所有的case标签的值都不匹配怎么办? 其实也没什么,结构就是所有的语句都被跳过而已。...程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。 但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?

    1.3K30

    【C语言】分支与循环(上)

    在C语言中,0为假,非0为真,也就是表达式的结果如果是0,则语句不执行,表达式的结果非0,则语句执行。...1.3 分支中包含多条语句 默认在 if 和 else 语句中都只控制一条语句。 比如: 有代码运行结果可知:无论输入的值是否大于等于18,“可以恋爱了” 都会打印在屏幕上。 why?...else 与最近的 if 匹配,但是第一个 if 语句就不成立,嵌套的 if 和 else 就没机会执行,所以最终啥都不打印。代码进行下面的改写比较容易理解。...或者我们希望 else 确实和第一个 if 匹配,就可以这样写: 适当的加上大括号 { } 可以让代码逻辑变得更清晰,提高其可读性。 2....因为18先与我们输入的56比较,表达式18结果为1,再拿1与36比较,为真,所以打印青年。那么我们该如何修正呢?见下: 3.

    25010

    python流程控制

    你要判断那条岔路是你真正要走的路, 如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。...、用于判断结果真假的条件表达式以及当表达式为真或者非零时执行的代码块。...,它打印的结果是A,但是95 明明也大于第二个条件elif score >=80:呀, 为什么不打印B呢?...这样大家就能清楚的明白while到底是如何进行循环的了,那么问题也来了:我们如果要终止这个循环如何终止呢? 终止循环的几种方式: 改变条件(根据上面的流程,只要改变条件,就会终止循环)。...练习实例 我们想只打印0-10之间的奇数,可以用continue语句跳过某些循环: #!

    2.3K40

    一篇带你参透 Python 循环

    程序的基本结构 在程序开发中,一共有三种基本结构: 顺序 —— 从上向下,顺序执行代码 分支 / 选择 —— 根据条件判断,决定执行代码的 分支 循环 —— 让 特定的代码重复 执行 while 循环基本使用...循环的作用就是让 指定的代码 重复的执行 while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行 while 语句基本语法 while 判断条件: 循环体语句 注意...常见的计数方法有两种,可以分别称为: 自然计数法(从 1 开始)—— 更符合人类的习惯 程序计数法(从 0 开始)—— 几乎所有的程序语言都选择从 0 开始计数 作为程序员的我们,在编写程序时,尽量养成习惯...break ,退出本层循环,不再执行后续的代码 continue ,终止本次循环,不执行后续的代码,再次进行循环条件判断 break 和 continue 只针对 当前所在循环 有效 break 在循环过程中...continue 时,条件处理部分的代码,需要特别注意,不小心会出现 死循环 continue 只针对当前所在循环有效 Python 循环的 else 语法 Python 循环语句 for, while

    1.4K10

    《Go 语言零基础入门到项目实战》

    串行的代码是逐行执行的,是确定的,而并发引入了不确定性。线程通信只能采用共享内存的方式,为了保证共享内存的有效性,可以加锁,但是这样又引入了死锁的风险。...这样在处理程序的运行和记录中间结果时,就可以使用更少的资源。待资源用完,线程就会被销毁。 线程要比进程轻量级很多。一个进程至少包含一个线程。...如果一个进程只包含一个线程,那么它里面的所有代码都只会被串行地执行。 每个进程的第一个线程都会随着该进程的启动而被创建,它们被称为其所属进程的主线程。...fmt.Println(i) }() } } 这段代码只在 main 函数中写了一条 for 语句。...请记住,只要 Go 语句本身执行完毕,Go 程序不会等待 Go 函数的执行,它就会立刻执行后边的语句,这就是异步并发执行。 这里“后边的语句”一般指的是上面例子中 for 语句中的下一个迭代。

    85830

    【C语言】预处理(预编译)详解(下)(C语言最终篇)

    我们来看看代码运行结果:    可以看到,两个printf打印出来的内容是一致的,所以我们可以得出,如果两个字符串挨着一起写,会实现字符串的合并    为了讲清楚#运算符,我们先来看看这样一个例子...   如果条件为真,那么就会编译中间的语句,也就是说最后会执行那些语句,如果为假则不会执行,但是这个条件需要一个常量表达式,我们等下来解释为什么不能使用变量,现在我们可以先来测试一下#if和#endif...如果条件编译的结果为假,那么条件编译中的语句经过预处理后会被直接删除,就像我们的注释一样,也是经过预处理后直接删除,所以后面编译就不会带上条件编译中的语句,最后运行生成的可执行程序也就不会执行这段语句...,我们每存放一次数据就将它打印一次,这个打印就是我们的调试信息,为了检查我们是否成功往数组存放信息的调试性代码    现在我们就来看这样一个场景,如何使用#ifdef或者是#if defined,如下...,这里我们定义了DEBUG这个符号,那么代码就会编译中间的调试性语句,我们来看看代码运行结果是否是这样的:    可以看到数据被打印出来了,说明这个调试性的语句参与编译了,现在我们把定义DEBUG

    44210

    语句和表达式有什么不同

    你不得不记住的那些JSX规则,以及总是忘记遵守的那些规则,大部分都是 「语句/表达式」 双重性的结果。 在这篇文章中,我将分享我对这两者区别的一些感悟,以及我们如何在日常工作中使用这些信息。...比如说,下面的代码在语法层面来说是有效的,但如果我们尝试运行就会让浏览器崩溃,因为它会导致死循环: while ("hello") { // 因为"hello"永不改变,因此循环会一遍又一遍的重复...// 语法上是有效的,但仍是有问题的。 } 便捷技巧 想知道一段JS代码到底是语句还是表达式吗?试着将它打印出来吧!...此外,我们甚至可以看到表达式的结果,因为会将结果打印到浏览器的控制台中。 这样可以凑效是因为任意函数的参数都必须是表达式。表达式会产生一个值,并将该值传递到函数中。...我们还需要了解JSX是如何编译成JavaScript的,以及React的调度与渲染周期是如何工作的......但是,这些话题已经超出了本篇文章的范围。

    2K20
    领券