00:00
接下来我们来讲解一下skyla当中的运算符的用法,在skyla里边呢,运算符基本上跟Java当中是差不多的,它的使用规则也基本相同,只有个别在细节上有所不同啊,那首先我们来看的就是大家最为熟悉的最常见的第一类运算符,算术运算符,所谓的算术运算符其实就是做加减乘除啊,数学计算相关的一些运算啊,那这一部分基本上跟Java里边是完全一样的,比如说像。运算符一个加号,它有两种表达的含义,一种是作为数字的正正号出现的啊,那另外一种当然就是大家比较熟悉的两数进行相加计算,作为这样一种运算符出现的啊,那对于这个正负号而言,这加和减啊,它这两种符号可以表示正负号,正负号的时候它是放在某一个。
01:00
某一个数或者某一个变量的前边作为一个单元运算符出现的,那如果说它是作为加减符号出现的时候,它是作为一个二元运算符要连接两个数或者两个变量啊,这个大家都是比较熟悉的用法,那另外还有就是乘和除乘的。表达其实就是一个星号啊,那它表示它连接两个数或者变量,表示两数相乘,那除的话是一个斜杠,斜杠这个含义就是同样也是连接两个数或者变量,表示两数相除,另外还有一个比较特殊的用法。特殊的运算,那就是所谓的百分号,这是取模运算,或者说数学上我们管它叫做取余运算,也就是说它同样连接的两个数或者两个变量是做除法之后求它得到的余数啊,最终我们得到的结果是它的余数。
02:00
呃,那除了数值方面的一些计算呢,另外我们做这个算术运算符还有其他的一个功能,就是对于字符串进行一些操作,大家最为常见的是字符串相加,直接用加加号做一个连接啊,这就相当于是我们这个加号的第三种用法,那当然了,与之对应的前面我们也提到过,乘号也可以用在连接字符串上,如果说我们把一个字符串乘以一个整数的话,这就代表把这个字符串就是乘以N,那就是N个字符串复制N遍,然后拼接在一起,就相当于是N个相加的概念啊,这就是关于算术运算符的一些具体的用法,我们在代码里边也可以做一个简单的测试,那现在就是第三章,我们新建一个package。是零三,然后接下来还是新建一个scla的object,我们把它叫做的零一。第三章下面的第一个测试文件s operator运算符的测试,呃,那首先第一个是算术运算符,算术运算符里边就是加减乘除那些都比较简单了啊,包括字符串的相加相乘,呃,这样的一个连接拼接计算我们都已经熟悉了,那这里重点要给大家再强调的一点的,其实就是关于除法计算,大家一定要注意,比方说我们这里边一个RESULT1。
03:41
如果说想要用十去除以三的话,得到的结果应该是什么呢?这其实涉及到了如果我们打印直接输出的话,大家会发现只除以三,如果我们直接做数学计算,那应该除不尽对吧?呃,就是三余一,或者是表示成小数,就是3.333,如果说这里我们直接做这样的整数除法的话。
04:06
大家发现得到的结果直接就是三啊,因为整数除法最终得到的结果我们也是一个int类型,看这个默认,如果不强调的话,默认这里面还是in,所以整数除法就是只保留最终的商,余数就直接舍掉了,也不保留小数部分,这是大家比较熟悉的整数除法啊。那有同学可能想到,那如果说我现在希望得到一个更精确的小数结果的话,那是不是直接我定义一个RESULT2,我把它定义成double,然后去做一个十除以三就可以了呢?这个大家其实也知道啊,正常情况下我们是不能这么做的,因为这样一做的话,其实这里我们首先是针对两个int类型的整数做了一个整数除法,先得到三,然后才做了一个自动类型的转换,把这个3INT类型的三转换成提升成精度更高的double,所以大家看输出的是3.0,那怎么样才能做到我们真正的除出来之后就是一个3.3333这样的一个小数呢?哎,那当然了,我们就是要做小数除法的话,我们定义一个RESULT3,同样还是希望得到一个double类型的输出,那就必须先要把十和三这里做的这个整数除法本身就转变成一个小数除法,那怎么样就能真的把它做成一个小数除法了呢?哎,当然这里边大家就可以直接非常简单的把十写成10.0,只要这两个除数被除数里边有一个是W。
05:47
也行,那他俩做计算的时候,之前我们也提到过。计算的过程就需要先做一个自动类型的转换,把低精度提升成高精度,那高精度当然就是double了,然后得到的结果自然也就直接是一个double的计算,得到一个double的值了,啊,那这个得到的结果就是3.3333,可以直接把它做一个打印按到。
06:15
够得到的就是3.3333,当然最后大家看到是3335,这就是前面我们提到过的啊,Float和double类型在表示小数的时候,其实是会有一些精度上的偏差的,因为二进制本身表示这个无限循环小数本身就是有一些呃不能准确表达的这个元素在里边的啊,所以这个大家需要稍微的注意一下,那如果说我们想要把它做一个格式化的输出的话,诶,那怎么样做这个格式化呢?呃,有有同学可能想,那我们可以类似于之前我们那个打印输出的时候啊,把它放在一个字符串里边,呃,然后做那个print f嘛,啊百分号加上这个,那或者这里边我们并不把它拼接成字符串,那能不能直接针对这个double类型就做一个转换呢?其实也是可以的,在这里我可以直接后边R来看,加一个有一个form的方法,里边要传的是一个。
07:14
Format的一个string啊,这个其实就是一个string类型,里边要写的其实就是我们之前的那个F里边用百分号代替指定某一种格式后边啊就可以指定当前的小数,比方说我们要求只保留两位小数,可以直接点2F,就是表示呃,浮点类型是保留两位小数之前我们前面还有一个2.2F,那前面那个是表示整个这个数位至少要有几位数啊,有效数字至少有几位,那如果超出的话,那当然就没关系了啊,那比方说这里边我们如果是5.2F的话。A输出。看到就是3.33,首先我们后面是保留两位有效数字,那前边我们本来不是五吗?就是最后我们要保留五位,占据五位数字嘛,啊,那这里大家看前面不够的位置就要空开啊,这是我们之前给大家说过的关于格式化输出的一个方法,呃,方式,这就是关于算术运算符的这一部分,那当然另外还有一个就是关于取余啊,取余运算的话,整体来讲也非常的简单,如果说我们是直接用十去。
08:29
哎,分号3MO mod3去它和这个曲模运算的话,那得到的结果其实大家也可以想到,肯定就是单是余数嘛,肯定就是一个整数了,一个int类型,如果这里他直接把这个RESULT4打印输出的话,可以看到。自然就是十除以三得到的余数一。这这是关于算术运算符里边一些比较容易混淆易错的点,也是容易在面试的过程当中被考察的点,大家需要了解一下。
我来说两句