00:01
来吧,我们现在来开始玩这个事情了,那现在呢,老师就直接取个名字叫开了,You later。DEMO好吧,就叫这个cul。DEMO。好啊,就叫就叫他吧。计算器。好,我们来一个主方法,主方法嗯,这个应该是正在录制。没问题,好,首先把我这个赞拿过来用,因为这个赞呢,我已经有了,我不可能再去重新写一遍,把这个赞拿过来。好的,我把这个赞拿过来了,同学们。我复制到我的cul这边来,那么为了好用呢,我为了跟刚才不打架,我就直接写个二。写跟这个没有问题,就是我们的一个站。这个站呢,我们已经测试过,是可以用的该站。该站。已经测试过了。没问题啊,你一定要保证你的站是正确的,如果你的站都错了,那你后面肯定没法玩。
01:04
好,这是第一件事情,第二件事情呢,我们来。来分析这个思路的同学们。这里面有个最要命的事,就是我们要提供一个优先级的比较。就是。你你要解决一个优先级的一个问题。那怎么来做这个优先级呢?这个优先级我们可以这样玩,我们定义一下。我的这个优先级我这么来写啊,同学们这边这肯定他缺方法。它缺什么方法呢?就是计算或者叫返回运算,运算符的。运算符的优先级。好,现在呢,我写一个我们我们这个优先级是你定的。是程序员,程序员定的。好,我现在这样定。
02:01
我们不考虑特别复杂的符号,我们将这定加和减呢,我们定义成零。它的优先级为零。好乘和除我们定义为一,我们认为这个数字越大。优先级越高。哦,这要定的,我们定义是数字大,数字越大。越大优先。优先级越高。OK。好,那现在呢,我就把这个优先级先定下来,这个优先级这个单词啊,有点不好写,我把已经放好了,我就用这个。Priority priority啊,那么这样子呢,我们,呃,当然你你这个符号,你给我传一个值进来。Oper。啊,比如说你给我传一个运算符,这个运算符大家都知道,运算符呢,它本身是一个差,大家都知道,差本身可以当做int来使用,大家还有印象吧。
03:03
所以我这直接接收这个int也是可以的。好的,因为你如果你传一个in特,我也恰和in特可以互用吗?好,那现在呢,我们就来进行一个判断了啊。那我们来看一看如果,如果什么呢?诶,同学们,嗯,回忆一下这个在阿斯卡玛里面,这个乘和除它分别对应什么值啊。可能大家忘了啊,我们先把它的这个整数给他对一下,当然你也可以这样写,说老师那你简单一点是不是这样也可以,那这样子啊,我们干脆也不那么啰嗦了,这样写。也是可以的。如果等于加。啊,这样子,如果等于乘,呃,可不可以这样写啊,可以吧,就是我们的字符和和这个整数,可以这样比较吧,可以的,如果它等于这个或者。Oper。
04:00
等于一个除这个字符。那么我们就return一个一。这是我定的啊,那么else if。如果这个oper。它等于的是。一个家。或者。或者oper。等于的是一个减,这个能理解哈,就说如果这样子的话呢,我们就认为它的优先级为零,打起精神哈,这个呢,其实你你只要钻研进去,你觉得还是很好玩的。啊,如果都不是,我就返回一个负一,我认为负一是一个不正确的结果。因为我我们最低为零,那假设你传的符号不对,对吧,我们这个是不正确的,是一个不正确的,但当然不正确,你要不要处理,那是你的事啊,你可以加一个,如果优先级是个负一,我就不不处理了哈,这个是我的一个这个计算优先级的。
05:00
呃,这么一个方法,这么一个方法。好呃,这个地方unit这个要改,改成一个啊,刚才同学说的很很对。好的,那现在我们是不是还要写一个方法,什么方法呀,是不是我们这要有一个计算的任务啊。大家看是不是要进行一个运算呢。那你想这个运算。你是不是也也得写一个方法吗?这个方法我们就直接写到这个站里面也是可以的,对吧,所以说我们再写一个计算的方法。所以大家能理解吧,肯定要写计算方法,你没计算方法,你没法计算了。好,我就要开了,那计算的时候他要给我传几个值呢?NUMBER1。这个也很好理解,NUMBER2。OK,然后呢,是不是还要给我传一个操作符过来呀,你没有操作操作符我肯定没有办法来给你玩,我们就都按int来走。那最后这个返回的也是一个in特,注意啊,本质上肯定会返回小数,但是我这为了为了讲赞,我不是想做一个数据精度的处理,我就简,我就简单认为我们计算的结果都是特。
06:12
啊,待会我设计的这个代码呢,也是按这个整数来做,如果小数的话。那还要处理呢,小数还有小数点。那还处理起来比较麻烦。好,现在呢,我们就来进行一个。匹配,那怎么怎么做呢?我先做一个结果默认。为零,好,现在我们我们对这个oper进行一个match。Case,如果他是一个家。各位,那这个result就等于NUMBER1加NUMBER2。好,那这个地方呢,还有点啊,不好弄啊,大家看它的报错,报错的原因是因为你后面是不是没有返回啊,把这个re写到这,它就不会再报错了。能理解吧,好,然后呢,我们继续往下写吧,Case,如果它等于一个减,问题一定要小心啊,RS等于减是不是根据刚才老师分析的这个弹数的一个顺序,因为他弹的时候是把前面的数是压到占领在下这面,所以你在弹的时候你要注意这个顺序应该是谁减谁呢?应该是NUMBER2减,当然这个也跟你传进的这个顺序有关。
07:26
啊,待会我们假设number是后取出来一个值。好吧,假定,那就是NUMBER2。简单不一,这个地方顺序要要注意,不然待会出来结果肯定是不正确的。好,那么如果他这个是一个乘啊,乘法就无所谓了。乘法的话呢,等于NUMBER1乘以NUMBER2。好,最后一个。Case。如果他是一个除。如果它是一个除的话呢,结果我们就认为是NUMBER2除以NUMBER1,因为这有个除数和被除数的问题,好,这个就写完了。
08:07
啊,我这里简单做了这么一个处理啊,我认为我的表达式目前只有加减乘除,没有别的,但有有的同老师,假设我们还有曲模,那你后面愿意加,你自己加。我现在先不写那么复杂了,好,这个计算方法也有了,这个也有了,好,我们看看还需要什么没有。好像差不多了。好差不多,那现在呢。这个这个站这一块我们就写完了,我先截取一段视频。
我来说两句