粉丝773获赞3773

c 语言的 switch 语句讲解,刚入行的同学一定要收藏好!先看一下这段代码,这里用了大量的 fs, 是不是觉得很烦?我用 switch 同样能实现刚刚的功能,这样看代码是不是更简洁一些?没错, switch 就是用来简化大量 fs 语句的,刚学习的同学可以在这里暂停截个图,我们继续来看这段代码。第三行定义了一个变量 dat, 并复制为数字六代码执行到第四行,我们把 dat 写在所以后面的括号里面了,接下来他就会去拿着 dat 的值去在下面每个 case 的后面的数字去匹配, case 后面只能是整形字符形美矩形的常亮。然后程序一直会找到第十二行, 十二行代码也并没有 break 这个退出语句。这里说一下 case 后面如果没有 break, 他就会继续执行下面的语句,所以他继续执行了十三 十四行代码,然后执行到十五行的时候就退出了这个 switch, 所以这里就只是输出了第十四行的打印结果。如果你不理解, 不妨把这段代码敲一遍,然后修改第三行 get 的值,看看会有怎么样的结果。这里说一下,如果你输入的值在第五行到第二十五行的 case 后面的值都没有, 那么就会帮你执行 default 后面的语句。 default 不是必须要写的,但是建议加上作为程序默认的一个操作。好了,今天视频就到这,别忘记点个关注。

此语言 switch 你会了吗?我们先看看这段代码。首先 switch 语句也叫开关语句,主要目的是为了减少 if 语句的使用,简而言之,就是让多个 if 语句在一个语句中体现。什么意思呢?以上上面代码为例, swift 可以看成 if, 但是不同于 if 语句的是会执行哪个 print? 要看 switch 后面小括号中 i 的值, i 的值为多少,就对应下面 case 后面的值执行对应的 print 语句。 比如上面爱的值为四,那么执行的就是 ks 四这个语句,但是输出的结果把 ks 五, ks 六, ks 七下面的语句都执行了,小伙伴们知道为啥吗? 因为所以是要配合 break 语句来使用,比如说在 case 四后面加个 break, 那么下面的 case 五, case 六, case 七就不会执行了。总而言之就是 switch pay 和 case 和 break 语句来使用,执行哪个 case 语句,根据 switch 后面爱的值和 case 后面的值对应,小伙伴们都学会了吗?

好,我们继续上课,我们上节课是讲一下我们思语言中的一个呃,运算符啊,我们的一个逻辑运算符,那么逻辑运算符里面我们也啊讲了一下,就是我们需要用到的那几个运算符。好,那我们这节课来讲一下我们思瑞尺和 case, 那么 switch 和 case 呢?和我们 evels 呢?他是有点关系的,也就说他们也有一点相同的一些功能。好,我们知道 efreos, 他是可以有无限量的一个分支数量,之前有讲过啊,就是我们可以用我们的 efreos 进行一个切套, 就是不仅仅是有 efls, 还有 ls, 衣服啊,都是可以进去切套的,那么分支如果比较多的时候,我们用 efls 处理的时候呢,会不会有点不方便, 而且很容易出现我 fl 四配对的出错的一个情况,也不越,也不便于我们的一个阅读。所以 像我们一个例子啊,我们输入一个整数,应该说输入一个整数,输出该整数对应的一个星期几的一个英文啊, 比方说我们这里有个啊,印特 a 啊,我们一个变量 a, 那么这里有个 prada 啊,请输入一个整数,我们用我们的 skafl 啊,百分号 d, 百分号 d 就是我们一个整形,那么我们输入一个整数,并把这个值负值的变量 a, 那么我们就进行判断了。 a 如果是一的话啊,衣服 a 等于一,如果 a 是一的话,那么我们输出 prad 啊,这个,那么否则啊,否则,如果 a 等于二的时候,那就输出这个英文, 那么否则啊,在,否则 a 等于三的时候输出他,然后一直到我们的一个星期啊,星期天好,星期天之后还不,否则也就说你这个 a 这个变量啊, 不是一也不是二也不是三,不是四,不是五,不是六不是七,那么这个数字就是有问题的啊,我们就直接输出我们的一个 l 四啊,里面的东西就是 plan 啊, l, 也就说当前面的条件他都不满足的时候,那么就走我们最后啊 l 好, 这种情况的话是能够实现啊,能够实现这个功能的,当然是我们可以发现它里面有好多 eve, l, s, e, f s, 是吧,就感觉就是太太乱了,然后呢,我们这个括号啊,一个配对也有点麻烦。好, 我们可以先把这个程序啊,给他抄一下来试一下,看能不能行啊,这个效果,打开我们的一个编程工具啊,我们的一个 v c 六点零,那么我就新建一个文件,然后 c 加加 sous file, 我就放我的一个地盘,然后带一下下, 看一下,我是放这个六点零 dat 啊,确定看下这节课四十四, 我就借一个 dm, 四十四点 c, ok, 把它烤过来好,保存一下, 点变异,确定链接直行。好,他说请输入一个整数,那么我这里的话,我就输入一个整数,比如,哎呀,比如我的一个一二,嘿,他就出来了啊,慢点,好,我再输一个 其他的,比如我输一个七啊,一回车,哎,是可以的。好,那我再输一个八呢,是吧?我输个七,他输输个九,然后一回车,他说 l 啊,因为我们 我们的一个啊,日期里面是没有星期九的啊,我们只有星期一到星期七,所以你输入九的时候呢,他就会爆错啊,也就是走了我们这个 l 啊,就是当前面的条件都不满足的时候, 他就走走走,最后那个 l, 好,那这种情况啊,虽然是没有毛病,能够实现我们的一个功能,但是不够简洁啊,也不够方便。那么我们来看一下我们后面的一个例子, 对于以上例子,在实际开发中呢,我们应该使用 switch 啊语句来代替,那么 switch 我们来看一下啊, 先看一下代码,印特 a 定的一个整形变量 a, prada 啊,请输入一个整数,那么斯卡夫啊,也是把我们输入的一个整数复制给变量 a, 好,这里看啊,有个 suit, 然后括号里面有个 a, 也就说 我们会根据 a 的变量的一个值啊,进行一个啊捕捉。你看这里有个 k 四一 case, 也就是说我们当 a 这个变量的值为一的时候,那么我们会执行这一段话啊,执行这一段话, 也就是我们 k 死一,后面啊,有个慢号,慢号后面的这一段话,他就会执行。好,那当他遇到第二个 k 死的时候,就是我们 k 死二,如果变量 a, 他的一个值啊,就是这里这个值啊,如果为二的时候,那么就 会执行二里面的一个啊,程序代码快好,最后如果都不符合,也就说他不是一,也不是二,也不是三, 然后也不是气啊,最后到这里的时候,有个地方的啊,这就是默认的啊,默认的,默认的,也就说当你前面的都不满足的时候呢,那我就直接用默认的啊,不让他。哎呦,当然这个可以不写啊,这个可以不写,不写的话就是直接没有输出的,就是你前面 没有都没有满足的话,那就不会有任何的啊,一个程序的一个操作了,但是你写的这个,也就是当前面的都不满足的时候呢,就会输入啊,就会输出。他,好,我们来看一个啊,他具体的看啊,所以只是一种选择结构,用来 代替简单的拥有多分者。 efls 语句基本的格式可以看一下 switch 表达式,看到没这个表达式,那么 case 整整形数值一啊,语句一,然后 case, 然后 k, 再来一个 case, 就是我们的整数数值二,然后语句二, 那么我们可以发现他这里 case 啊,他后面是不是要求的是整形数值,所以说这个里面必须是整形的,但是整形的话,我们可以知道,我们整形里面其实可以用我们的一个什么, 那么那个字符啊,也是可以的,那我们待会来看啊,最后还有一个 define 啊, define, 也就是最后啊最后写的那一句话,那么执行的过程,他首先是计算我们表达式的一个值,假设我们的一个啊,表达式里面的那个值是 m 啊, m, 那也就说当第一个 k 死开始的时候,会比较整形数值一和 m 的一个值,如果他们相等,就直行冒号后面所有的语句啊,也就是语句一, 然后一直执行到雨具 m 加一,而不管后面的 k 四是否匹配成功。这个的话,你们 先跟着我来把这个科技啊给他看完,然后我们再实际来操作一下就很清楚了。好,那这的话 还有啊,如果整形数值一和 m 他不相等的时候呢,他就会跳出冒号后面的语句一,继续比较第二个 case 啊,第三个 case, 一旦啊发现和某个人数值相等了,就执行后面所有的语句,假设 m 和数整数数值五相等啊, 看一下啊啊,这里还没写那个整数五,是吧?那么就从语句五一直执行到我们的一个最后一句话,这个的话我直接搞一个例子,我看一下啊, 这个,把这个搞一下,把这个给他复制过来,我们来分析一下。好, ok, 把它复制过来了,那么这里的话我们可以看一下啊, 我们也是同样的啊,让他输入一个整数,输完之后我们用我们的 sweet 啊,就是用 sweet, 那么对我们这个变量 a 啊进行一个判断,这个变量 a 他是要是整形的啊,要是整形的好, 那么 k 十一,也就说当 a 等于一的时候,那么我会执行这一段代码,当 a 等于二的时候,我会执行这一段代码, 当 a 等于三的时候,我会执行他,所以你这里写几啊,就是当 a 等于几的时候,那么他就会执行这里啊,执行后面的一个代码段。好,那这样的话我们可以发现一个问题,我们来试一下啊, 我们来试下,我们按道理来说啊,我们来运行,我们按道理来说,我们输一是不是显示的是慢的啊?所以我们来试一下,输一个输一个一一回事。哎,他是不是没有那种效果? 我们刚刚的那个代码是不是输入一的时候,他就只显示 money 啊,他就不会输出后面的啊?这个的话是有一个原因的啊,有个原因,那我们来再再来猜测一下啊,我们输入一的时候是从我们 money 一直到 l, 看到没?是不是一直 从头到尾已经谁不输出了?好,那我来输一个二的时候会怎么样?输一个二啊,输二回车。哎,是不是二?就是我们 k 四二后面的这个程序代码化,他全都执行的,包括我们这个 dphone 的啊,他也执行了。 那我们如果输入四的时候,是不是 k 死五之后的,不,应该说 k 死四和到我们的地方的啊?这里这一块都会执行,我们来试一下啊,输一个四 四啊,可以看到就是从四这个代码太单排跨,然后一直到我们最后的一个 l 都输出了,所以如果我们不想他把后面的人输出,也就是说我们如果 a 这个变量等于一的时候,也就是 k 四一的时候,我们 我们只需要他输出。这一段话要怎么去做?有个办法就是写我们的一个 break 啊, break, b, i e, a, k 啊,博瑞克,当然博瑞克后面必须要加一个啊,分号啊,加上分号,那这样的话,也就是说我们博瑞克呢?他是可以啊,阻止我们程序继续往下去判断的啊,我们来试一下保存 变异链接直行。好,我们来试一下输入一一回事。哎,是不是只显示我们那个慢点的啊,后面就没有直行了啊,就没有直行了。 但是你要是再输一个二啊,输个二,他是不是后面还是会执行?因为你这个 k 四二后面没有加布瑞克,也就是说没有 中断他啊,也就说我们加了布瑞克,那么只要我们这个变量满足了这个条件,他就只会执行布瑞克前面啊,就这句话,布瑞克前面的那个语句块, 如果你没有加布瑞克,那么他执行完他自己的语句快之后,他还会把后面的全部都执行掉啊,就这样子,也就算布瑞克可以打动我们的一个 suri 车的一个啊,流程啊,一个运行的一个流程。好,那这里我们就就应该都要加上的啊,都要加上的。 好, ok, 大家, dplay 他是不需要的,因为后面没有代码了,就随便他执,不执行他就他都没有了,是吧,所以这里就不需要博瑞克。好,我们来编意链接执行。好,那现在的话,我们如果 输一个一啊,输一个一,那么我们这里显示什么的啊,就是没毛病。好,我们再来输一个三啊,试一下,输一个三。好,也是没有什么问题的啊,没有什么问题的,所以说啊,不认可就是这个作用。好, 那如果你说啊,我出一个九啊,是吧,他也是显示 l 啊,前面都不会走了,因为没有满足条件。 ok, 我们继续看我们的一个文档。 好,这些都是一样的啊,都是我们刚刚说的博瑞克,他就是我们思源中的一个关键字,用于跳出 swiss 语句。 所谓跳出,是指一旦遇到 break, 就不再执行 srich 中的任何语句,包括当前风之中的语句和 其他风之中的语句。好,刚刚接个电话啊,好,那么我们如果遇到布瑞克,他就不会执行我 siri 之中的任何语句啊,包括当前风之中的语句和其他风之中的语句。 也就说整个 suit 他执行也就结束了,接着会执行我们整个 siri 后面的代码。 这句话有点有点扯,就不会再执行任何一句,就有点那个就会,他遇到不瑞,可他只是说不会执行后面的一句啊,应该说不会再执行后面的, 后面的一致。 好, ok, 那我们使用布瑞克,我们来看一下,就像我们刚刚写的啊,一样的,也是在后面加上布瑞克,他就可以了,所以这个的话其实是不用写的,应该 他也有啊,你看他也双面拿下,由于 done 他,他是最后一个分支,匹配后是不会再执行其他的分支,在其后面可以不添加不认可啊。 case 后面是必须要有一个,必须是一个整数,或者说它的结果为整数的一个表达,是,但不能包含任何变量,我们可以看一下,像这种啊, case 十没毛病啊,因为它是整数,是不是整数好 case 八加九啊,八加九,最后的结果是不是整数?整数加整数是不是整数啊?这个 也没毛病,那 k 四 a 啊 a, 我们这个 a 是不是用我们一个单一号进行包裹的,那么它是个字符,我们知道字符的话,它和我们整数是可以进行相互转换的,那么具体的一个转换是在我们一个阿斯科马值里面啊,自己去找一下。好, 那还有一个就是我们一个啊,字符加上一个整数,那么这种情况也是可以的啊,最后得出的就是我们那个整数,因为他们可以相互进行一个转换, 好像这种啊,九点五,那他是 flow 是吧?那这种小数的话是不允许的,就是错误的,不能有,不能为我们那个小数,那么 k 四 a, 哎,我们可以发现这个 a 是不是个变量啊?是不是变量?这里的 a 他是用这个单一号缺起来的,所以 他这个字符,那么这里这个 a 是个变量,变量的话是不可以的啊,所以就错误了。那么变量再加上十啊,加上一个数也是不可以的啊,他,他反正就是 k 死,后面是不能包含我们这个变量的,他只能包含我们那个整数,或者说我们那个字符, 这是能和我们整数进行转换的啊。好的的呢,他不是必须的,当没有的放的的时候,如果所有的 kiss 都匹配失败,那么就什么都不执行。好,这个的话我也演示一遍给你们看一下。 我们知道我们如果输入的是六啊,他会有输出,是不是有输出,那么我们如果输入的是八,是不就显示了 l 好 l, 因为我们写的这个 define 啊,那如果我们把 dphone 他给他去的啊,我们直接用我们那个注视双反双跟斜杠啊,保存别一链接直行。好,那现在我们输个六是没毛病的啊,我们再来输一个 九,来试一下九一回事,是不是程序直接就啊运行完了,所以这种情况下就有点不合适了也当然这个 dphone 的也会根据你自己的一个实际情况是否需要他啊,所以我们这节课的知识点呢,就是我们一个思域尺啊, 所以说他就是判断啊,判断他这个括号里面这个表达。是啊,他的一个值啊,他的一个值,他的这个值啊,是否满足啊?我们后面写的这种 case 啊, case 一, case 二, case 三,当然你选一个 case 也可以,你写一百个 case 也是可以的啊, 这个根据你自己的实际情况呐,你写一个也可以啊,说个一就有了是吧,那么我写我写个三是吧?叫 l 啊,这种情况都是可以的,不认可你要不要?那你看你自己啊,一般我们都是需要用的,不认可。 好, ok, 那我们 sweet 的话呢,基本上就讲到这里,可能大家觉得有点绕,但是你们把这些例子啊,给他就是跑一遍做一遍,基本上是能够理解的啊,因为我们后面还有那种就是实战的项目,那个那个时候你们就是 更加强我们这个印象,因为课程的话,这边好像讲的有点多了啊,所以就讲的比较快了,就是稍微啊,带大家带一下,然后最后做项目的 时候都会用到这这一块东西的。好,那我们再来看一下啊,就是我们 surich 啊,它是和我们 case 这个语句啊,它是一起来使用的,也就是说我们有 switch 啊,我们就需要用我们一个啊 case 或提放的啊。 那如果我们要用我们的 kiss, 那肯定是要有 siri 啊,因为我们 kiss 它是在我们 siri 池里面的啊,所以说我们还有一个重点,就是我们 kiss 后面啊,它是要有整数啊,或者说它能够转换成整数的一个数值, 他们这个布瑞克,布瑞克的话,他就是在我们当前这种代码啊,遇到了布瑞克之后呢,他后面的代码就不会去执行了,包括那个啊,其他的抵缝的这一块东西,他都不会执行的。但是如果你说你, 你这里没有 break, 那么他执行完这一条之后,他还会往下执行,直到他碰到 break, 或者说我们程序全部执行完,他就完事了啊,好,那我们这节课的话先讲到这,我们下节课再见。


嗨,大家好,我是云一,欢迎来到云一课堂。今天我给大家分享的是 c 五幺语言分支程序结构当中的词谓词语句 分支控制语句包含有两种,一种是衣服语句,一种是 switch 语句。那我们来看一下 switch 语句它的格式, 首先是 switch, 然后跟的是一个表达是一,接下来这些我们用一组大括号把它括起来,那里边包括 kiss 和 that。 我们先来看第一个 kiss, 然后是长数表达,是一冒号,后边根子是语句,那我们将它括起来,这里边大括号里边呢,是用分号来结尾的,然后加了一个 break, 然后是下一个 kiss, 常数表达是二,然后以句二 break, 那一直到 长量表达是 n, 语句 n break, 那最后有一个 defront 语句 n 加一,这是 switch 语句的常用格式。接下来我们具体的来分析一下。每一个 kits 的长量表达是 必须是互不相同的,那如果有相同的执行的时候,他是不知道去执行哪一个,也就是会出错。 你第二点需要说明的是,各个 kiss 和 defat 他出现的次序并不影响程序执行的结果,那我们在书写的时候呢,一般是先写 kiss, 然后再写这个 dfat。 三点此位置括号内的表达式的值与某 k 词后面的长量表达式的值相同时,就直行他后面的语句。那我们假设这个位置如果是一个一的话,那这里边有一二 三,等他俩相同就执行这里边的,那执行完宇宙一,就遇到了一个布瑞克,那遇到布瑞克则退出,所以是宇宙,也就是执行了这一条,不执行其他的了,从这里边退出来, 那第四点说所有的 case 当中的长量表达式的值都没有与 switch, 与就是表达式的值相匹配时,也就是表达式一和下边这些表 法式的值都不相同,那么就执行 dfat 后边这个语句。 第五点,如果我们在 kiss 语句当中遗忘了布瑞克语句,那也就说这些有一个可能我没有写,比如说这个忘写了,那么程序执行完这行之后呢?他由于没有布瑞克就不会退出死维持语句向下继续执行 执行这条语句,那执行完之后呢?遇到了一个博瑞克,这个时候才从 switch 语句当中退出来,那这是分支控制语句 switch。

大家好,欢迎回来。在这个视频中,我们将讨论苏池渔具。这可能有点随意,但前几天,我和我的朋友谈论了豪华汽车的加热座椅。 我在想,如果你能得到带有加热键的豪华笔记本电脑,那会很酷,因为我的手指总是很冷。然后我的打字就变得很糟糕。这只是我不能在不犯错误的情况下打出一个句子的借口。但是,无论如何, switch 语句与衣服语句非常相似。正如我之前提到的, 基本上,我们将在这个小应用程序场景中询问用户。这是一个饮食应用程序。我们将询问用户他们吃了多少片披萨。然后我们将编写他们的饮食,并告诉他们是否做得好。是的, 我知道这完全没用,但有点酷。这只是基础。你知道,一旦我们有了这个基础,你可以将其推广到实际,构建一个好的饮食应用程序。 但现在,我们将从硬编码人们吃的披萨片数开始,然后最终我们将从输入中获取他。但我现在只想专注于素质语句,所以我不想分心。编写素质语句的方法是使用素质关键字, 然后在括号中放置你要进行条件判断的变量,然后将所有内容放在这些花括号中。你需要定义不同的 case, 例如 case 一,你做某些事情 case 二,你做某些事情 case 三,你的手很冷。最后,我们将有一个 case。 当你有所有这些 case 时,这个语句就会起作用。 但是,有一件事情你必须记住,一旦你完成了这些 case, 你需要放置一个的 for。 我认为这不是必须的。但如果你想做一个全补货,那么你需要的 for。 在你开始编码之前,还有一件事情你需要做,那就是在每个 case 之后放置一个 break 语句。这些 break 语句可以防止穿 透。我们马上就会看到这一点。即使在 the four 中,我也喜欢放置一个 break。 在这里你可以编写代码。所有的代码都需要放在 case 标签之后和 break 渔具之前。在这里, 你可以夸奖你的用户只吃了一片披萨,但很明显,你可以看到他们实际上吃了三片。所以这个 case 不适用。然后我只是要做几个不同版本。下次再说 k。 四。 你知道我甚至不想为此说太多。我会打印出你让人失望,然后默认情况下,如果披萨骗数大于四。我想。从技术上讲, 如果披萨片数为零,则默认情况下会被命中。但在我的脑海中,这个素质只会在人们说他们吃了披萨时被命中。这意味着披萨片数至少大于零。所以让我们进入这个默认情况,并打印出你真的需要少吃点披萨。现在我想运行这个 程序,并看看会发生什么。你做的很糟糕,下次尝试吃的少一点。好的,这是因为我们命中的 ks。 三。你可以看到这个 ks 号与披萨片数的质相关联。如果我们将披萨片数设置为一,那么谁会想要减少他们的披萨消费?这太荒谬了。现在,他说你做的很好。 最后,让我们进入默认情况。这是当你真的很饿的时候,享受你的心脏病。如果你觉得需要,你可以添加换行服。但我总是不得不添加换行服,因为我会忘记这需要很多时间,而且没有太多好处,只是为了学习如何使用缩齿语句。 好的,现在让我们尝试去掉这些 break 语句,并看看会发生什么。我们还要将披萨片数更改为一。你做的很好,你做的还可以。你做的很糟糕,看到了吗?程序无法决定该做什么,因为他进入了 case 并执行了这个 case。 然后他穿过了所有这些行并执行了他们。我想这就是我想要讲的所有内容,但我确实想从用户输入中获取这个值,所以我要这样做。如果你之前看过这个,那么你可以继续看下一个视频。但是为了好玩,我建议你也这样做。这样可以练习一下。 我们将在披萨骗术中使用 scan。 这是我们做过无数次的事情。我们需要告诉用户该做什么。然后最终我想制作一个计算器, 计算一些卡路里。所以我要做每片披萨的卡路里。将其设置为两百五十。也许这是用户可以配置的东西,或者根据披萨的类型可以更改。 然后在这里我们可以打印出你吃了 x 卡路里。通过 x, 我指的是我们将卡路里每片成以披萨片数,然后换行。哎呀,然后添加你吃了多少片披萨,让我们假设是三 安片。你做的很糟糕,下次尝试吃的少一点。你吃了七百五十卡路里。这就是如何创建 suit 语句。一段时间以前, 我们为了什么来创建了一个意思语句。让我看看这个编码挑战。也许不是,也许是。是的,我们在这里做了非常类似的事情。我们创建了这个菜单。我说这将非常容易转换为苏喂式语句。所以我的编码挑战是让你回去观看我的 lc 的十件事拼, 确保你已经用立语句编写了这个菜单,并进行了将其转换为素质语句的练习。尝试所有可能的输入,并确保事情能够正确的进行。一旦你掌握了这个,你应该对素质语句非常熟悉了。他们并不太复杂,只是请确保。为了每个人的利益,在标签之后放置 break 语句。 好的。这就是我为你们准备的所有内容。请务必查看我的 c 编程速成课程的描述,其中包含了这个视频中的所有内容。以简洁的方式呈现。这是我想到的第一件事。好的。

在阿杜 eno 基础四这个视频中,已经介绍了条件判断语句 exs, 在进行多项判断时,可以采用他的集联应用。这里我们再举个例子,比如编程实现有五等奖项的抽奖兑奖, 一等奖奖品笔记本。二等奖奖品手机。三等奖奖品平板电脑。四等奖奖品耳机。五等奖奖品优盘。首先采用上次讲的流程图梳理一下思路,流程一般是这样的,用一副 l 四编成实线, 是不是感觉有点啰嗦,有没有一种显得简单明了的变成? 这里就要介绍一下思维尺语句了,他的语法结构是这样的,思维尺后面 括号中就是要比较的变量,用于下面的 case 中的标签进行比较。在这个例子中,变量就是奖券的奖项等级, case 后面是与变量进行比较的值,也就是变量可能出现的情况。 这个例子中一共设置了五个奖项,所以会有五个 case, 分别是一等奖、二等奖、三等奖、四等奖、五等奖。 cas 语句之后就是变量为当前情况 要执行的语句,底发了之后则是除前面情况外的其他情况要执行的语句。这个例子用史瑞士语句表示,是这样的, 大家看这个结构是不是更加简单明了。比如我们兑换三等奖是这样执行的,从上往下依次判断每个 case 语句,一等 不是跳到下面 case, 二等奖也不是继续往下执行,三等奖是当前 case 情况,则执行该 case 下面的语句。遇到博瑞克,跳出整个斯维斯语句,每个 case 语句之后加一个博瑞克, 是指执行完这个 kiss 中的语句后,直接跳出整个死位去判断。我们来看一下忘记写布瑞克后会发生的情况。假设我们忘记了二等奖后的布瑞克, 一等奖兑换没问题,三等奖兑换没问题,再看看二等奖兑换, 忘记布瑞克之后,就能把二三两个奖项的奖品全都拿走。如果这是你设计的自动发奖程序,是不是就亏大了? 一定要注意这个事项。如果忘记布瑞克,斯瑞士语句会无条件继续往下执行,直至遇到布瑞克或斯瑞士语句结束。 所以除特殊需要外,千万不要忘记布瑞克。这里还需要说一下斯威驰渔具的局限性,并由此介绍一下斯威驰渔具和艺术 s 该如何选择。 一是死位式语句判断的变量都是整形或字符形,也就是一二三四或 abcd。 这种情况 如果是有广角判断或其他运算,应该采用 evox, 而是遇到数值范围的情况应该采用 evox。 比如视频四中将班中的成绩分类,如果用思维式语句,需要这样编写程序, 这是不是相当麻烦?好了,总结一下,多选 e, 而且变量判断比较简单的情况适合用 swiss, 其他情况一般选用 efs。 本次就先讲这么多,如果大家有什么问题或意见,欢迎留言或发私信,谢谢观看!

好,如果大家能够理解的话,那我们接下来再讲第二个,就是所以词语,就是说 break 它的一个作用,其实在前面的代码里面,我们是不是已经用到了 break 啊?那我们这个地方呢,专门讲一下 啊,碎制语句中的 break, 那我怎么讲呢?我说同学,假设我们这个地方把前面这个代码里边的 break 我全都干掉啊,干掉,干掉,好,我们全都干掉,那这个时候代码又会发生什么样的现象呢?同志们再来看一下程序,这地方易求同志们看, 我们这地方呢,假设输入上一个七,大家注意啊,假设我们这地方呢,给代码里边输入一个七看一下,哎,你看他既打印了余数是一,又打余数是二, 为什么这样打印呢?原因很简单,就是因为如果是漆的话,漆膜膜三之后余数是一,是一的话,我做 k c 一这儿进来了,我执行完之后呢,哎,后面没有 break, 没有 break 的情况下,大家注意,如果原来有 break 的话,我们直接是不是它是跳出去了, break 啊,就是中指啊,中断啊,那这个地方就跳出去,所以说一句了,但是如果这儿没有 break 的话,大家注意它就会持续往下走,哎, k 三二里面的咱们稍带着也执行一下呀,对吧?那又答应了啊,余数十二 啊,所以他会一直往下走,直到把后面东西打印完,直到遇到一个 break 或者是 sweet 成语句结束,哎,我们才不不不往下走了。 然而这个地方有同学不服,哎,宋老师呢,再来验证一个啊,这个地方我们再给大家讲一个,比如说我们假设输入上一个六,大家注意,六的话,摩三之后的余数是零啊,那我们从这开始,那是不是就余数是零,余数是一,余数是二,都会答应啊?哎,这个地方再一走,你看都答应了,那这就严重不满足我们想要的这种效果啊。 啊,所以大家想象一下,在这个地方,我们发现,诶,在我们 switch 语句里边儿啊, switch 是语句里面 case 选项,如果要实现那种分支的效果的话,哎,大家注意,我们很有必要在每个 case 后面加二 break, 这样的话是每个 case 进来之后处理自己的逻辑,处理完之后是不是跳出去就可以了 啊,跳出去就可以了,大家能听懂我的这个意思吗?啊,希望大家能够理解好,这是我们讲的这个 switch case 语句里边的 break 的一个作用,它 能够实现真正的分支,他呢?执行呢?会跳出某一个分支啊,某一个分支。所以未来在我们写碎这一句的时候,大家要分析我的这个 case 后面要不要加上 break。 当然大家也不要在这地方就迷信了说,哎呀,那我们是不是以后每个 case 的后面都应该加入 break 啊,这个不一定的啊,同志们要根据实际的情况来看,哎,这个时候才能得到一个正确的结果,比方说我们这地方呢,举一些例子啊,假设我们 这地方有个数据成语的练习,他说,请输入一到七的数字啊,打印对应的星期几,如果你输入一,你给我打一星期一,你如果输入二,打一星期二,输入三,打一星期三,以此类推。如果你打啊,输入六,打一星期六,如果你输入七,打一星期天就可以了, 那如果我想表达这么一个逻辑,该如何去实现呢?大家注意啊,这个地方呢,我们也是啊,直接写代码啊,写出我们的主函数啊,写出我们的主函数 啊,这儿呢,你是不是要输入一个天啊,星期几的这样一个 d 的这样一个值啊,所以我们这儿创建个并量叫 d 吧,等于零, 我们可以呢,输入一个值,对吧?这个地方给上一个百分二 d 逗号取的一只 day 啊,这样的一个值。好了,紧接着下来,我要判断这个 day 的大大小,当然你在这个地方也可以用 if s 语句的逻辑去判断啊,说,如果 啊,倍呢,等于我的一,大家注意啊,如果倍等于一,那这个地方我们就可以输出什么呢?啊?星期啊,大家注意,星期一我们是不是就可以这样给啊? 啊,我就可以这样给 else, 大家注意 if 啊,如果你的 day 呢等于二啊, day 呢等于二,那这个地方我们就说出什么呢?星期二啊,以此类推,这样是不是一直往下,一直这样往下写啊,可不可以呢?当然是可以的啊, 用 a f l c f l c f l c f 的形式啊,往下写。当然大家要注意,我们刚刚这种写法里面,我说长量和并量在比较相不相等的时候,把长量放在左边,是为一种好的编程习惯嘛,对不对?哦,这种 我就不再往下写了,大家可以看一下用 if l c 句的逻辑啊,多个 l c f 是不是可以把它搞定了?当然这个地方在书写的时候我们就不用这种形式了啊,我们应该 很熟悉的就能把它写出来,我们这呢有碎词语,就来给大家写一写,怎么写呢?大家注意,我还是把它干掉,我其实就是去判断对的值到底是几是几,我就执行啊, k 四几嘛,所以 s w i t c s 碎石啊,我们去判断对的值。好,这地方走,我们去看 k 四, 如果对的值是一,我就走 kc 这进来,那这个地方呢?大家想象一下,我这个地方是不是有打印什么呢?星期一吗?啊,我就打印星期一 啊,我就打印星期一。然后呢,大家注意,打印完之后 break 跳出去,如果你呢?哎,给的是啊,发现 day 的值是二,那我就走了。 k 三,二,那我们这儿给上一个 penta f, 这儿给上一个星期二,那我们打印上一个什么呢? break, 如 如果你的 d 是三的话,我就走个 k 三,那我们这给上一个 penta f, 大家注意,我们这就打一星期三这么一个逻辑,如果你的 d 的值呢?是啊,四的话,那我们就走了。 k 四,那我们把 break 呢统一都啊, switch 语句统一都写完,好吧,啊啊,这个地方呢,我们再配上我们的 break, 对吧?如果你的 day 啊是六,那咱们走了。 case 六,如果你的 day 是七,那咱们就走了 case 七啊,这么一个逻辑 好,对吧?那相同的道理,我们这地方呢,再给大家把它的加上,如果你是啊,对的是四啊,那我们就打一七七 四,对吧,如果你对的是五啊,我们就打一星期五啊,如果你对的是六,那我们就打一星期六,如果你对的是七啊,我们这就打一星期天啊,我们就打一星期天。这个逻辑是不是就出来了,同志们看一下, 而且你会发现我在 case 的后面都加了 break, 因为如果是一的话,我们打一星期一就可以了,不需要打一星期二,也不要打一星期三,也不要打一星期三,也不要打一星期四,对吧?以此类推哦。当然,这个地方我们是不小心漏掉了一个 break 啊,大家注意啊,你看, 我们每个 case 后面都加了 bra, 因为他们每一个都是单独处理的啊,每一个都是单独处理,不需要呢,连贯处理,对吧?那代码这样走起来的时候,大家可以看一下我们的效果, 比如说我们这地方呢,哎,有兴趣了,我们输入一个四,大家看星期四数出来了,他不用呢,哎,星期四,星期五,星期六啊,持续的往下走,对不对啊?当然,如果我们这地方输入一个一的话,大家可以看一下,我们这地方呢,给上一个什么呢啊?我们这输入一个一啊,大家注意,星期一就可以了,这就是我们用 swish case 语句啊,去实现整个这个国际 啊,实现整个这个逻辑啊,注意啊,我们这种需求底下,我们的每个 case 的后面 啊,都加了相应的 break, 来处理每一种情况,对不对?懂了吧?啊,我们呢稍稍微把这调调大一些啊,调大一些 啊,大家可以看一下啊,那我们回头再来讲说,那是不是每个 case 的后面都应该加入 break 呢?其实也不一定啊,比方说此时此刻需求发生变化了啊,人家的需求变成了输入一到五的数字的时候呢,哎,输入一到五的数字的时候呢?哎,你给他输出工作日 啊,星期一是工作日,星期二是工作日,星期三是工作日,星期四是工作日,星期五也是工作日,就是只要是一到五的数字都输出工作日,而输入的如果是六到七的数字的话,输出星期休息日就可以了 啊,那有同学说,老师,这还不简单吗?啊,这还不简单吗?那我们啊,这个地方给上一个什么呢?叫工作日啊,工作日 啊,这儿一改之后呢?啊,那简单了,这儿也一改啊,工作日这儿也一改,工作日这儿也一改,工作日这儿也一改工作日。而对于下面这个地方呢来说的话,我们说休息日 啊,休息日,那我们按这儿一改啊,把这个呢一改,这样好像就对了呀,哎,这个时候同学们注意啊,程序此时此刻这么一走的时候,大家看一下我们呢啊,这个地方呢,给上一个,比如说三,你看,哎,工作日 啊,如果这个地方我们再给上一个六的话,大家可以看一下六的话,哎,你看休息就出来了,哎,好像结果也没什么问题,对不对?但是这样写的时候大家注意啊,代码里面有很多重复的内容,你比如说 k c, 一是工作人, k c 二也是工作人, k 三也是工作人,你会发现这都很重复呀,那根据我们以往的经验说,如果在这个地方没有 braid 的话,他不是持续往下走吗?你会发现此时此刻 case 一二三四五应该处理的逻辑都是一样的呀,那还不如我们留一个算了。那这个时候我们就想着把它干掉,干掉,然后去掉去掉,然后去掉去掉,然后去掉去掉。大家注意, 你不管从 kc 这儿进来还是二这儿进来,三这儿进来,四这儿进来,五这儿进来,咱们都没有 break, 中途没有 break 的话,他去记,一直往下走,直到哎,这儿把工作人一打一之后 break 跳出去,这样不就更好了吗?哎,把它去掉,把它去掉,大家注意,六和七呢,哎,按照同一个逻辑处理,这不就更加简洁了吗? 哎,确实是这样子的,所以从这个案例里面,大家有没有发现,哎,在 case 一二三四的后面,包括 case 六的后面,就不需要加二 break 了, 那是因为我们希望这些啊, case 选项他处理同一个,结果他一直往下走,最后执行他对不对?好了,那我们还是验证一下这个逻辑到底对还是不对。 是不是我们这地方给上一个三,大家可以看一下,我们这输入一个三,大家看工作日出来了,当然在这个地方你也可以输入一个什么呢?比如说五,哎,你看一下工作日也就出来了,当然在这地方你也可以给上一个,比如说六啊,大家注意,我们在这给上一个六,大家可以看一下。哎,修饰休息日也就出来了, 那我们会发现啊,此时此刻,哎,还能完成我们想要的任务,所以我们想得出一个结论是什么呢?说 c 是语句,每个 k、 c、 o、 v 都需要加 break 吗?不是 加 break 呢,能够实现这种分支的效果,但是需不需要加 break 是根据我们实际的需求来确定的,我希望同学们听懂这样一个点好,那么那我们这个地方呢,就把所以之语句里面的 break 的作用啊就讲清楚了。

这节课我们来讲一下 switch 语句,首先来看个小动漫吧,有一个人叫 a, 那么他要走路口 啊,首先跟 a 匹配好,满足,接下去 b 路口, c 路口 default 路口都能走好,这就是思维曲一句,可能不明白我在说什么,那我们再来看 b, a 跟 a 判断好不能走, b 能不能走,能走, b 能走,以后 b 后面的路口都能走。好好理解, c 不能, c 跟 b 不匹配, c 跟 c 匹配啊,匹配成功以后后面的路口都能走,最后还有一个 d, 不是 不是,不是,那么只剩下 default 这个路口了,所以 default 什么作用啊?前面不符合的,那么最后剩下的那种 可能,那么只能有最后一个路口来解决。逻辑,这就是 switch 语句,那么我们用代码来讲解一下,就是有一个变量叫 road name, 好,那么根据这个 road name, 我们要做相应的逻辑,那么 switch 的模板是什么? switch 加一个小括号,再加一个大括号, 小框里面填的是一个表达式,那我们这里简单来说是一个变量,那么根据这个表达式,我们要进行判断,有多种情况。 case case case default, 那么就是情况一,情况二,情况三, default, 就是剩下的最后一个情况, 那么像刚才逻辑中就是 case a, 哎,你这个 rood name 是否等于 a 啊?是的话怎么办? c alt a, 那么如果是 b 呢? c alt b, 如果是 c 呢? c alt c, 那么最后一种情况就是你没有要走的路口, 所以逻辑是什么?当表达式,也就是 rodename 与这个 case 值相匹配的时候,相当于什么? if, rodename 等于等于 a, 但是注意跟 if 有所区别, 那么程序从该分支注意是开始执行。什么是开始执行啊?举个例子吧,假如这个 road name 是 b, 那么 k s a 成立吗?不成立。 k s b 也成立吗?相当于 road name 等于 b 吗?等不等于?等于,等于以后从这里开始执行, 从这里开始的路口我通通都要走一遍,这就是所谓去语句,所以跟衣服是有差别的。但是这个逻辑跟我们生活中的逻辑有点不太一样,我们生活中的逻辑是怎么样子的?一个人叫 a 对不对? 来到路口匹配吗?匹配。那怎么办?直接出去听懂吗?直接出去, b 跟 a 匹配不成功,跟 b 匹配成功,直接出去。好, c, 不是不是,是的好,直接出去。那么来看, d 不成功,不成功,不成功都不成功,只能走剩下的那一个 default 通道, 这才是我们生活中常见的逻辑。那么这个逻辑怎么做呢?只要在我们原来的基础上面,每个 case 加一个 break 就可以了。举个例子,还是比 k s a 成功吗?不成功。 k s b 成功吗?成功。本来是下面的通道我都得走一遍,那我们先走 b 通道, a out b 路口,走完以后,因为这里有一个 break, 直接停止 switch 语句,就相当于路口直接出去,这才是 switch 语句常用的用法。但是这个逻辑我们可以用 if 来做, 所以说 switch 我们只要理解它的逻辑就可以了,在现实写代码中用的不多。 下面我们用 switch 来做一个题目吧,毕竟很多考级的时候会考到这么一个很小的知识点输出考试成绩啊。九十分及以上为 a 等,六十分到八十九分为 b 等,六十分以下为 c 等啊,编程输出考试等级啊。那么我们知道 switch 的框架是什么? switch n, 然后把各种情况罗列一下,那么在这里有零到一百,总共一百零一种情况,我相信我们不会这样 去写,所以这里要做一个改进。怎么改进?把分数去除以十,这样子零到一百分就会对应的十一个等级,零级到什么十级? 所以 k 四零, k 四一, k 四二,那么这样子写起来相对来说会简单一点,但是他不是最好的,我们可以持续改进。怎么说呢?因为题目说了只有九十分以上,六十到八十九,以及什么六十分以下,那么九十分以上, 所以我们 case 情况就是 case 十 case 九, case 什么六好?为什么? case 五 case 四?不用管它,因为它们都是六十分以下的,所以我们只要按着这个模板去做就可以了。那么具体怎么写呢?我们来看这么一个程序输入 没什么好说, switch n 除以十,举个例子,八十九分,那么 k 四十不能进来, k 四九行不行啊? 也不行,对不对?那么 k s 八呢?可不可以啊? k s 八可以,因为八十九除以十等于什么八?也就是说从这个通道开始我都能走,那么 k s 七也能走,直接走过去就好了,为什么?因为他们内部是没有逻辑的。来到了 k s 六,这时候发现 see out b 怎么办? 输出了,输出以后直接加 break, 所以八十九分代表的是 b 级,有错吗?没有错。好, 再来一个例子,如果是一百分,那么 case 十成立吗?成立, case 十能走以后呢?根据 switch 的逻辑,就是九也能走,那么九里面是有逻辑的,那么直接 say out a, 也就是说一百分考 考的是 a 级。因为这个 break 的存在,我就直接结束了 switch。 那我们再来一个五十八分吧, case 十不行, case 九不行, case 八不行, case 七不行, case 六也不行,那么只能剩下了 default 这一个通道,所以输出的是 c。 好,这就是用一个简单的 switch 来完成成绩等级的划分。 当然实话实说,明明可以用衣服来解决问题的啊。现实生活中我们更愿意用衣服来解决问题,为什么?因为衣服他更灵活。要不是考级有可能会考到这一种知识点,我都不愿意跟你讲 switch。


通讯当中经常会出现信号失真或者衰弱现象,再加上全世界各地与人们的口音不同,更容易出现误听差错。尤其是在二十六个英文字母当中,如 bd、 p、 t、 g、 j、 s、 x 等读音相似的最容易被听错。 为此,在航空通讯当中,经常把一个字母读成一个对应的单词。例如 a 读成二法, e 读成 echo, 这个就是字母 a 到字母 g 的航空字母读法。 那么现在我们就有了一个新需求,我们希望可以编写一个程序,输入字母,输出对应的航空字母单词。很显然,这个程序可以使用 if 嵌套来写。为了简单清晰, 我们省略 f 的括号,写成 lcf 的形式。代码非常的简单。在 f 测试条件当中,判断输入的字符和某个字母是否相等,如果相等,则输出对应的航空字母单词就可以了。 那么除了 if 语句的层层嵌套,有没有别的更合适的方式来编写类似的代码呢? c 语言提供了一种多重选择语句 switch, 它更加适合这种情形,也可以使代码更加清晰明了。 本节课我们就来学习 c 语言中的思维词语句精讲系编程,我们马上开课。 我们先来 看看 switch 的使用方法。 switch 后面加上括号,括号里面是一个整形表达式花。括号中间有多个 case 语句, case 空格加上一个整形长量冒号,下一行是一个对应的语句。最后有一个 default 冒号,下一行是对应的语句。根据 switch 这个使用方法,我们可以将前面的需求按照这个写法进行编写。 我们直接来看代码,并且一起梳理 switch 的跳转步骤。首先, switch 会先计算括号内的整形表达式的结果。 在这个代码中,这个结果是用户自己输入的,保存在变量 letter 中。接着依次对比 case 中的长量是否等于整 表达式的结果。若不相等,对比下一个 case。 如果相等,则跳转到这个 case。 例如,用户输入了字母 b, 首先会对比第一个 case, 判断 letter 和字母 a 是否相等。不想等则跳转到第二个 case。 到了第二个 case, 同样判断 letter 和字母 b 是否相等。 相等则执行 case 之下的语句,也就是打印出 bravo。 如果整个 sway 句中没有与 case 的值相等的,那么直接跳转到 default。 space 语句的使用中还有几个注意事项。第一, space 后面的括号只能填一个整形表达式。第二, case 后面的长量不能有重复的。第三,可以, 所以没有 defiles。 大家看这段代码的时候肯定注意到了,每一个 case 语句后面都加了一个 break, 他在这里究竟是什么作用呢?让我们把每个 case 后面的 break 都去掉,然后输入 e。 看看运行结果。 我们发现结果输出了从一开始之后的所有对应的单词。同时, default 也被执行了。 事实上, switch 找到了对应的 case 之后,仅仅是从对应的 case 处开始执行,并不会。执行完对应的 case 就跳出整个 s 位置。除非遇到 break 才会跳出整个 s 位置。因此,当输入字符 e 时,除了输出 echo, 代码还会继续往下执行,输出 fox、 child golf 和 i don't know。 如果我们在 k s, f 这条语句之后加上 break, 程序将从 k、 s, e 进入,之后直到 k、 s, f 遇到了 break 跳出。因此,如果你不想执行后续的 k、 s, 请一定要加上 break 跳出整个死位置。 假设我们希望这个字母转换程序可以持续为我们提供服务,而不是每次转换完成之后就结束了。那么这个程序需要加上循环。 我们运行这个程序并输入 a 之后,结果发现输出了阿尔法,但是紧跟着出现了 idono。 这是为什么呢? 这是因为我们输入的时候,首先输入了 a, 之后按下回车键斜杠 n, 也就是换行符 scan。 首先保存了 a, 然后再保存了斜杠 n, 所以才会输出 idono。 很显然,我们不需要这个额外的斜杠 n, 可以使用这个函数清除未被吸收的输入。这个知识点我们后续的课程中会了解。在这里同学们只要跟着一起做就可以了。 我们再看这段代码。有的同学可能会提出疑问, wire 循环中可以使用 break 跳出循环, switch 也可以使用 break 跳出。那么代码中的 break 到底作用于谁呢? switch 中的 break 能不能将 wire 结束循环呢?答 案是不能的。 switch 中的 break 只属于 switch 语句,它的效果是跳出 switch 无法对 well 语句产生任何效果。但是我们将 break 写在 switch 语句之外,那么它将对 well 产生效果。 有了 break, 自然会有人联想到。那么 continue 又是作用于谁呢?我们将代码做这样的修改,在第二个 case 中调用了 continue。 运行之后发现,当我们输入了 b, 执行了 continue, 前面的两条语句循环便重新开始了。 因为 continue 对于 switch 不产生影响,所以这个 continue 只属于 y 循环。本节课我们学习了 c 语言中的多重选择语句 switch 的使用。我们知道了 switch 是可以用来代替 f 语句的一些多层嵌套的,它可以使代码更加清晰明了。同时,我们也学习了 switch 是如何一步一步找到对应的内容并且进行执行的。还学会了 break 关键词在 switch 中的作用。 下一节课,我们将进入 c 语言中的另一个重要知识点数组篇章的学习。精讲系编程。我们下节课再见。