(图片来源网络,侵删)
在上节课已经学习了switch分支,但是关于switch分支其实还有一些使用的注意事项,是需要小心的,不然写switch分支的时候可能是不清晰或者在遇到面试题又解决不了。看一看注意事项,注意事项是有三条的。·第一条说的是表示的类型指的是什么?败的说的硬的欠,说的是谁?是不是这个类型?·接着给五开始,这是什么?美举,美举现在是没学,可以先了解一下。·接着给七是开始支持思俊,刚用思俊类型的纸放在这里是不是也可以?不支持double flow的和什么?long,为什么不支持double flow和弄?其实double flow的数据在底层的运算是不精确的,比如用零点一加零点二作为表达式,这种散出来的值不一定是零点三的,有这样的现象的,所以值不精确去匹配是不是可能会有问题?是,索性不支持w和bolt。等会会带同名的到代码中去看一看是不是这样,为什么不支持弄?因为弄的范围是不是很大?其实这个分支没有必要制造弄,想一个分支有上百个分支是不是已经很了不起了?用inter表示的数据是不是已经足以?是的,弄的范围怎么样?是不是太大?没有必要制止到弄。·接下来看第二条是case给出的值不允许重复,这些值是不是不能是一样的?值一和值二不能一样,一样是不知道走哪个分支,而且只能是字变量,不能是变量,也就是值一值二不能用变量的。·第三点是不要忘记写break,因为break是不是跳出这个分支的?如果不加就不会跳出去,就会继续往下穿透。这些注意事项具体是什么意思?是不是还是应该到代码中去看一看,会理解的更好一点。从这边打开idea,在列的位置新建一个类,这个类依然把它叫思维一起demo三,在这个地方来写一个闷方法,记录一下目标。这节课的目标应该是什么?是清楚switch的是不是注意点,并在开发的时候注意。注意点有这么几条,已经为同学们拿过来了,是这么三条,要一一为同学们用代码来拆解。·第一点是表示类型指的是byte int欠,就来写一个switch,然后写这大括号,这个位置是不是就表示?对,可以用byte类型的数据,比如byte a等于二十,把a放到这个位置是没有问题的,再加一个十是不是也没有问题?因为加十是把它当inter类型来看也没问题的。其实把这个地方写成inter也可以,说明是不是支持inter类型,还支持char夏日,给它一个什么?是不是字符?比如字符c是不是也支持?美酒没选,这个七支持斯顿,斯顿就不说了,因为在上个案例里面是不是已经看到了用过的斯顿类型的纸放到这个地方是支认识的。再回来,不支持double否则和弄,来一个double,比如在这边写一个double,然后在这边给它一个值,这个值写成比如十二点三,这个地方是报错,把鼠标移上去看它报什么错。这是一个什么类型?发现double,但是需要的是什么?需要是不是恰拜的inter字符这些东西是不是支持?是对或者媒局,跟我上面说这句话其实是怎么样一个意思?人家根本是不支持double,为什么不支持double?其实这个地方可以为朋友们介绍一下原因,比如这个地方可能就是多少?可能就是零点一加零点二,或者这样做,把零点一、零点二放到上面去,夹着a的值就是零点一,加多少?是不是加零点二?大招本人是不支持的,为什么不支持这种小说类型?可以把a的值输出看一看,这个值是不是零点三?看一看到是不是零点三,这还不一定,要看情况,打的值是零点三吗?不是,它是一个非金界的运算,以为这个值是零点三,但是倒在这里面写个case零点三,是不是认为两个值是不一样的?这样会对业务是不产生影响,甚至会导致bug,所以加号索性就不支持w类型的。说到这可能同学们不仅需要发几个疑问,就是为什么w类型的运算是不精确的?其实这个问题并不需要知道这个原因,因为这是跟硬件上的计算是有一定的关系的,有兴趣会在高级片的时候为大家再介绍,暂时只需要知道一点,就是小数运算在加号中可能是怎么样不精确的,怎么样让它能够精确?这是后面的课程也会讲解的。这里就解释了什么是为什么不支持w类型?因为w类型的数据是怎么样是不精确的,所以能不能比对?不能,不能直接比对,所以索性不支持。既然w不支持弗洛肯定怎么样?是不是也不支持?还有个弄不支持,弄是不是不支持?写一个比如lg等于二十,然后把lg放到这个位置,大号支不支持?不支持,不支持把鼠标移上去,它报错了,是不是也说了需要的类型中没有包含什么,所以就会报错,所以这个也不支持。关于第一条注意事项就说完了,接下来看第二条,case给出的值是不允许重复的,且只能是自变量不能是变量。这句话什么意思?比如在这边写了一个3,是不是要去配对?如果再来配对一个3,break,然后还来一个case3,再来一个不是一个,是不是就报错了?因为这个3是不是不知道走哪个分支了?这边写31肯定是没毛病的,而它说了只能是自变量不能是变量,就这个值只能是自变量不能用变量,是不是?来试一下,比如in的a等于3,然后把这个1放哪里?放这个位置对不对?其实1里面也是3,但是就是不支持变量。为什么?因为人家后面匹配值本来是不是就要明确?对,如果是一个不明确的值就认为意义不大,而答应什么问题?答应有一天变量里面万一也是多少?也是31,是不是跟它重复了?是,所以需要这个地方值是确定还是不确定?确定,确定,不允许用变量,把鼠标移上去,也说了根本不支持,这样的值要一个什么?叫ctrl,就是确定的值。所以这地方写成3是没毛病,但是不能用变量的,这是大家一定要注意的。先来看最后一个,这个是什么?就是不要忘记写break,否则会出现穿透现象。这句话是什么意思?回到第二个代码里面来看一看,它说的是这样子,比如这个地方没有写break,是把这个去掉了,或者这里怎么样没有写break,会导致一个什么现象?一旦这个值是多少?比如是周二,遇到周二这个分支之后会不会跳出来?不会的,会怎么走?会先说大楼乘务员是帮忙,直接往下穿斗,到周三这个地方来是啤酒龙虾小烧烤,再到周至这个地方来说主动帮助新男女成员解决bug,在遇到break是不是才结束的?是,这种叫穿透性,原因就是因为丢了break。要给同学们说的一个观点是什么?就是在正常写思维题的时候能不能丢break就不能丢,否则这个成语逻辑是不会出现问题。关于穿透性就说完了,回到ppt来做一个简单的总结。这一节主要讲了三点。·第一点就是表示中只能写bide说的in的恰,每一句不支持doubleflow的喉咙,这也是面试常考的一个点。·第二点就是case给出的值不能怎么样重复,就这两个值不能重复,而且只能是字面量不能用什么面料。·第三点是不要忘记break,如果忘了写break,到时候遇到这个分支之后是不是直接往下冲?是,直到遇到布瑞克是不是才跳出来?这种现象叫穿透性,而且在中间穿透的时候判不判断这个条件?不再判断了,是不是直接往下走?是。在正常写思维奇的时候就不要去丢布瑞克。关于它的注意事项就说到这。
0 评论