目录
基本语法
| 运算符 | 运算 | 范例 | 结果 |
| + | 正号 | +3 | 3 |
| - | 负号 | b=3,-b | -3 |
| + | 加 | 5+6 | 11 |
| - | 减 | 9-2 | 7 |
| * | 乘 | 6*4 | 24 |
| / | 除 | 9/3 | 3 |
| & | 取模(取余) | 7%5 | 2 |
| + | 字符串相加 | “He”+“llo” | Hello |
(1)对于除号“ / ” ,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分;小数之间做除法时,只保留小数部分而舍弃整数部分。
(2)对一个数取模a%b , 结果为余数部分。
案例实操
- package chapter03
-
- object Test01_TestOperator {
- def main(args: Array[String]): Unit = {
-
- val result1:Int = 10 / 3
- println(result1)
-
- val result2:Double = 10 / 3
- println(result2)
-
- val result3:Double = 10.0 /3
- println(result3)
-
- val result4:Double = 10.0 /3.0
- println(result4.formatted("%3.2f"))
-
- val result6:Int = 10 % 3
- println(result6)
-
- val result5:Double = 10 % 3
- println(result5)
-
-
- }
-
- }
运行结果

基本语法
| 运算符 | 运算 | 范例 | 结果 |
| == | 相等于 | 4==3 | false |
| != | 不等于 | 4 ! =3 | true |
| < | 小于 | 4<3 | false |
| > | 大于 | 4>3 | true |
| <= | 小于等于 | 4<=3 | false |
| >= | 大于等于 | 4>=3 | true |
在Java中实操
对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。 “==”比较两个变量本身的值,即两个对象在内存中的首地址。“equals()”比较字符串中所包含的内容是否相同。
注意(1):
如果: StringBuffer s1 = new StringBuffer("hello");
StringBuffer s2 = new StringBuffer("hello");
结果: s1.equals(s2) //是false
解释:StringBuffer类中没有重新定义equals这个方法,因此这个方法就来自Object类,
而Object类中的equals方法是用来比较“地址”的,所以等于false.
- public class TestOperator {
- public static void main(String[] args) {
- String a1 = "Hello";
- String a2 = new String("Hello");
-
- Boolean isEqual = a1 ==a2 ;
- System.out.println(isEqual);
- System.out.println(a1.equals(a2));
-
-
-
- }
- }
运行结果

Scala案例实操
- package chapter03
-
- object Test01_TestOperator {
- def main(args: Array[String]): Unit = {
-
- //比较运算符
- val a1:String = "hello"
- val a2:String = new String ("hello")
-
- println(a1==a2) //直接引用了equals方法
-
- println(a1.equals(a2)) //equals方法:比较字符串中所包含的内容是否相同。
-
- println(a1.eq(a2)) //判断引用地址是否一致
-
-
-
-
- }
-
- }
运行结果

基本语法
用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个Boolean值。
假定:变量A为true,B为false
| 运算符 | 描述 | 实例 |
| && | 逻辑与 | (A&&B)运算结果为false |
| || | 逻辑或 | (A||B)运算结果为true |
| ! | 逻辑非 | !(A&&B)运算结果为true |
案例实操
- package chapter03
-
- object Test01_TestOperator {
- def main(args: Array[String]): Unit = {
-
- //3逻辑运算符
- def m(k:Int):Int={
- println("m被调用")
- return k
- }
- val k = 1
- println((4>5) && m(k)>0)
- //如果前面是false,那么就会直接输出结果,不会再继续运行下去;短路了
- //如果改成4<5,那么程序就会继续运行下去,运行结果则为:m被调用;true
- //或者将&&改成&,这样会把前后两个表达式的值都给计算出来。运行结果为:m被调用;false
-
- //判断一个字符串是否为空
- def isNotEmpty(str:String):Boolean={
- return str != null && ! ("".equals(str.trim))
- }
- println(isNotEmpty(str=null))
-
- println("3=======")
- }
- }
运行结果

基本语法
赋值结果就是将某个运算后的值,赋给指定的变量
| 运算符 | 描述 | 实例 |
| = | 简单的赋值运算符,将一个表达式的值赋给一个左值 | C=A+B将A+B表达式结果赋值给C |
| += | 相加后再赋值 | C+=A等于C=C+A |
| -= | 相减后再赋值 | C - = A等于C=C-A |
| *= | 相乘后再赋值 | C*=A等于C=C*A |
| /= | 相除后再赋值 | C/ = A等于C=C/A |
| %= | 求余后再赋值 | C%=A等于C=C%A |
| <<= | 左移后再赋值 | C<<=2等于C=C<<2 |
| >>= | 右移后再赋值 | C>>=2等于C=C>>2 |
| &= | 按位与后赋值 | C&=2等于C=C&2 |
| ^= | 按位异或后赋值 | C^=2等于C=C^2 |
| | = | 按位或后赋值 | C | =2等于C=C | 2 |
注意:Scala中没有++、- -操作符,可以通过+= 、- =来实现同样的结果;
在Java中实操
- public class TestOperator {
- public static void main(String[] args) {
-
- //自增自减
- int x =15;
- int y = x++;
- System.out.println("x=:" + x + ",y=:" +y);
-
- int x1 =15;
- int y1 = ++x1;
- System.out.println("x1=:" + x1 + ",y1=:" +y1);
-
- x=23;
- x=x++;
- System.out.println(x);
-
-
- }
- }
Java中运行结果
最后一个 X 的结果应该是23,因为我前面测试的是 x=--x; 所以结果为22.
案例实操
- package chapter03
-
- object Test01_TestOperator {
- def main(args: Array[String]): Unit = {
-
- //4赋值运算符
- var a:Int =98
- a+=1
- println(a)
-
- }
-
- }
运行结果

基本语法
下表中变量 a 为60, b为13。
| 运算符 | 描述 | 实例 |
| & | 按位与运算符 | (a&b)输出结果12,二进制解释:0000 1100 |
| | | 按位或运算符 | (a | b) 输出结果61,二进制解释:0011 1101 |
| ^ | 按位异或运算符 | (a^b)输出结果49,二进制解释:0011 0001 |
| ~ | 按位取反运算符 | (~a)输出结果-61,二进制解释:1100 0011,在一个有符号二进制数的补码形式。 |
| << | 左移动运算符 | a<<2输出结果240,二进制解释:0011 0000 |
| >> | 右移动运算符 | a>>2输出结果15,二进制解释:0000 1111 |
| >>> | 无符号右移 | a>>>2输出结果15,二进制解释:00001111 |
案例实操
- package chapter03
-
- object Test01_TestOperator {
- def main(args: Array[String]): Unit = {
-
- //5、位运算符
- val b:Byte =60
- println(b << 3)
- println(b >> 2)
-
-
- val s:Short = -33
- println(s << 3)
- println(s >> 3)
- println(s >>> 3)
-
- }
- }
运行结果

在Scala中其实是没有运算符的,使用运算符打算方法。
(1)当调用对象的方法时,点可以省略。
(2)如果函数参数只有一个,或者没有参数,()可以省略。
案例实操
- package chapter03
-
- object Test01_TestOperator {
- def main(args: Array[String]): Unit = {
-
- //6、运算符的本质
- val m1:Int = 32
- val m2:Int = 67
-
- println(m1.+(m2)) //点可以省略
- println(m1+(m2)) //省略.的例子
- println(m1+m2) //只有一个参数的前提上,小括号也可以省略掉
-
- println(2.5.*(20))
- println(2.5*20)
-
- //点可以用空格代替
- println(8.8.toInt)
- println(8.8 toInt)
-
- }
-
- }
运行结果
