00:00
那现在呢,各位同学,我们来做一个关于负值运算符的面试题,这是这个面试题呢,是呃,在我们去找工作的时候啊,有有可能会遇到的一个面试题,他这样子的同学们看。他说有两个变量A和B,要求将其进行交换。但是呢,他有个要求,不允许使用中间变量,大家还记不记得刚才我们在做一个题的时候,大家看我们在这做了一个题。看这做了一个A加B交换,但是呢,我们当时使用了一个中间变量,临时变量,大家看这里。是不是当时我们用了一个临时变量啊。但是人家人家这次的要求是不允许使用临时变量。大家想一想这个怎么做?那我们一起来想想,你们如果是听现在在听视频的同学呢,你可以先暂停视频,自己先想一想。你可以先想一想。
01:04
我把这个题先粘到这里来。你想如果说你遇到这样的题,你能做出来吗?对不对,你能做出来吗。好,同学们可以暂停视频,先想一想,再听老师的课程。好了,我呢现在给大家进行一个评讲啊,看看你做出来没有,同样我把这个练习题呢,也放在这边去,这是第二个练习,我们新建一个文件夹吧。这时我们又一个练习。Exec。零二。好在这里呢,我们。新建一个main,点购。同样道理。我们把。它的一个结构拿来。案例案例的要求。说的非常清楚。把两个变量进行交换,但不允许使用中间变量。想想怎么做吧。
02:01
下来怎么做?好,首先呢,我们先盯一点。把变量先。定义出来对不对。VR a int,比如说。这个是10V2b。Int,比如它是20。那这个时候怎么办呢?第一步,我们应该这么做。也就是说,先把A加B的值交给A。也就说这个时候A等于A加B了,能理解。也就这个时候A等于A加B了,然后B。等于A减B。为什么呢?大家想一想,因为你上面这个A。这个A是不是。已经是等于A加B了,那也就是说这句话它是等价于这个感觉。A加B。减B。是这意思吧,因为你上面这个不是把A加B交给A了吗?到这个时候这个A已经是。
03:03
A加B了,那这样子其实就是等于等价于什么呢?这样就是等价于B,等于什么呀A了。是不是就相当于把A交给B了,已经成功了吧?下再下一步,A等于A。这个为什么呢?大家看,因为这个时候我们这个。B等于A了,所以这个时候你要这么去执行的话,相当于A等于你想想A没有发生变化。A没发生变化,所以说A还是A加B的值。A还是等于A加B的值?然后再减掉一个B,但是B现在已经等于A了,大家看到底是因为你你上面这一步已经把相当于等价于把这个A交给B了嘛。所以说这个时候减B就相当于减掉了一个什么呀。减掉了一个。减,减B就相当于减A,所以这个推导出来过后呢,相当于是A。
04:06
等于什么呀B。所以这个结果就出来了。能。转过转过弯吗?是不是感觉有点难啊?自己好好去想一想啊,好好去想想,来我们把它输出来看结果对不对。老师已经把它说的很清楚,就说你看这个替换的效果就应该推的出来,我说出来啊,同学们看,A等于。我用格式化输出。A等于VB等于百分之V,按照原子输出A和B,那原先这个A是十,B是20,那我们看看输出的结果是什么?CD点点EX1,零,二。没问题吧,我们go,诶这么有毛病。RFMT单词写错了。再来。跑一下。呃,现在呢,我用go run。
05:00
让一下我们的main.go没问题吧,回车。我们可以看到A现在等于多少呢?A现在等于20 B等于十,是不是交换成功了呀,你看这里。你原先A是等于十的,B等于20,那现在呢,A变成了20 B变成了十,没有没问题吧,成功了,好同学们好好理解一下这句话啊,这个呢是我们一个面试题,希望同学们领会一下,还是有点,说实话还是有一点点难度,就说你如果说你第一次接触编程,你就能想出来,那说明你确实适合编程,如果你第一次。学这个编程想不起来呢,也比较正常,对不对,所以说你把老师讲的这东西,你再想一想,把它绕过来。好,我把这个评奖的作业给大家放在笔里面去。OK。好的。整体我们放在这个位置。缩小一点。
06:01
好,那关于就是负值运算的面试题,我们就评讲到这里。
我来说两句