运算符可以对数字进行运算,同时运算符左右还可以是函数调用或者其他的数学表达式,即复合运算,如(a+b)/c;(sin x)*-d。
as,具体表达式为:操作数as类型,这里的类型就包括上节讲的部分数值类型,用法如下:1.234 as integer —— 1.234是float类型数值,integer是整形数值,这句就是强制把1.234变为整形数值,直接将小数点后面的尾巴去掉,所以上面1.234 as integer和1.999 as integer会得到同样的结果1。
123456789 as string —— 强制把数值12345679转化为字符常量,结果为"123456789"。
而中括号[],大括号则另有用途。
数学运算的优先级从高到低如下:
操作数
函数调用 --如sin x,cos y
as
^ --右结合性
*和/ --左结合性
+和- --左结合性
混合运算,我们来练习一下上面的运算符号: (, 下载次数: 8)
上传
点击文件名下载附件
3^8/"100" as float --运算顺序为:先进行3^8运算,得到6561,后面as运算级别高于/,所以再进行"100" as float运算,得到100.0,最后才进行/运算,即6561/100.0,得到65.61。
2*pi*8^2 --pi是常量,即圆周率π,这句就是计算半径为8的圆的面积。
2*-9/e --e是常量,即自然对数底
maxscript提供与c语言一样的复合赋值,这样提高了编程速度,简化程序。我们先看这样一个赋值:x = x+1就是将x的值增加1,如果之前你赋给x = 1,那么执行些语句后,x就变成了2,这样对于变量自己的增减操作特别方便,另如:s = s*25将s的原来的值乘以25后再赋给s,即现在的s是执行些语句之前的25倍。在以后程序中会经常用到这样的操作,程序也给我们提供了一个更简便的写法:x+= 1,等同于x = x+1,s *= 25等同于s = s*25。四个基本数学运算符+,-,*,/均可与"="结合起来,组成复合赋值符号,如:
a += 3 等同于 a = a+3
b -= 9 等同于b = b-9
x *= y+5 等同于 x = x*(y+50)
n /= m-p 等同于 n = n/(m-p)
下面出些题,大家思考一下,然后用maxscript侦听器执行一下,看看结果。
1. 1.8*5+6/2
2. 58/7 as float*35
3. 46*(9+12*(32-9))/"100" as float
以下假设先赋值a = 15
4. a += a
5. a -= 8
6. a*= 3+6
7. a /= a+a as float
注意每次执行后a的值都进行了什么改变!