Java运算符

一、赋值运算符

赋值运算符(=)的作用就是将一个表达式的值赋值给左边,左边必须是可修改的(变量),不能是常量。

public class MyClass {
    public static void main(String[] args) {
        int num = 0;//尽可能早地初始化变量,声明变量时就赋初值
        int num1 = 99;
        num=num1;//将num1的值赋值给num
        System.out.println(num);//输出99
    }
}

二、算数运算符

Java中算数运算符包括

  • 加法运算:+
  • 减法运算:-
  • 乘法运算:*
  • 除法运算:/(分母不能为0)
  • 取模运算:%
public class MyClass {
    public static void main(String[] args) {
		int num1=5;
		int num2=3;
		//加法运算
		System.out.println(num1+num2);//输出8
		//减法运算
		System.out.println(num1-num2);//输出2
		//乘法运算
		System.out.println(num1*num2);//输出15
		//除法运算
		System.out.println(num1/num2);//输出1
		//取模运算
		System.out.println(num1%num2);//输出2
	}
}

2.1 /和%的区别

  • /取结果的商,%取结果的余数
  • 任何数%10都等于个位数
    例:1234%10=4
  • 除法中只有一位小数就按照正常除法运算
    例:10.0/4=2.5

2.1.1 案例:将一个整数逆序输出

  public class PrintText {
    public static void main(String[] args) {
        int num =54321;
        int wan=num%10*10000;//等于10000,num%10=1
        int qian=num/10%10*1000;//等于2000,num/10=5432,5432%10=2
        int bai=num/100%10*100;//等于300,num/10=543,543%10=3
        int shi=num/1000%10*10;//等于40,num/10=54,54%10=4
        int ge=num/10000%10;//等于5,num/10=5,5%10=5
        System.out.println(wan+qian+bai+shi+ge);//输出12345
    }
}

三、复合赋值运算符

Java中复合赋值运算符包括

  • 加后赋值:+=
  • 减后赋值:-=
  • 乘后赋值:*=
  • 除后赋值:/=
  • 取余后赋值:%=
public class MyClass {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        a += b;//这里a=20,等价于a = a + b
        System.out.println(a);//输出30
        a -= b;//这里a=30,等价于a = a - b
        System.out.println(a);//输出20
        a *= b;//这里a=20,等价于a = a * b
        System.out.println(a);//输出200
        a /= b;//这里a=200,等价于a = a / b
        System.out.println(a);//输出20
        a %= b;//这里a=20,等价于a = a % b
        System.out.println(a);//输出0
    }
}

四、增量运算符

Java中增量赋值运算符包括

  • 自增:++
  • 自减:- -

++运算,变量的值加1;–运算,变量的值减1;
单独使用时,++和–放在变量前面或者后面,结果是一样的;但是在混合运算中就不同了。

4.1 ++/- -在前,先运算后取值

public class MyClass {
    public static void main(String[] args) {
        int a = 10;
        int b = ++a;//先将a的值加1,然后赋值给b;
        System.out.println(a);//输出10
        System.out.println(b);//输出10
    }
}

4.2 ++/- - 在后,先取值后运算

public class MyClass {
    public static void main(String[] args) {
        int a = 10;
        int b = a--;//先将a的值赋给b,在对a进行减1
        System.out.println(a);//输出9
        System.out.println(b);//输出10
    }
}

4.3 char类型的自增/自减

public class MyClass {
    public static void main(String[] args) {
        char x = 'a';//在ASCLL码表中a=97,b=98....
        char y = x++;//这里自增就相当于将ASCLL码表中a的值加1,为98,所以x的值就为b
        System.out.println(x);//输出b
        System.out.println(y);//输出a
    }
}

注:自增/自减可以用于整数类型、浮点类型和char类型

五、关系运算符

Java中关系运算符包括

  • 大于:>
  • 小于:<
  • 等于:== 不要将=和==混淆
  • 大于等于:>=
  • 小于等于:<=
  • 不等于:!=

注:关系运算符的结果都是boolean值,要么是true,要么是false

public class MyClass {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a > b);//输出false
        System.out.println(a < b);//输出true
        System.out.println(a >= b);//输出false
        System.out.println(a <= b);//输出true
        System.out.println(a == b);//输出false
        System.out.println(a!= b);//输出true
    }
}

六、逻辑运算符

Java中逻辑运算符包括

  • 逻辑运算符(用来比较多个条件关系的运算结果,结果为boolean值。)

    • 符号作用说明
      &逻辑与a&b,a和b都为true,结果为true,否则为false
      |逻辑或a|b,a和b都为false ,结果为false ,否则为true
      ^逻辑异或a^b,a和b结果不同为true,相同为false
      !逻辑非a!b,!a,结果与a相反
  • 短路逻辑运算符(效率更高,前面的条件不成立就不会执行后面的条件。)

    • 符号作用说明
      &&短路与作用与&相同,但是有短路作用
      ||短路或作用与|相同,但是有短路作用
public class MyClass {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        //a<b为true,b>c为false
        System.out.println(a<b&b>c);//输出false
        System.out.println(a<b && b>c);//输出false
        System.out.println(a<b | b>c);//输出true
        System.out.println(a<b || b>c);//输出true
        //a>b为false,b>c为false
        System.out.println(a>b ^ b>c);//输出false
        System.out.println(!(a>b));//输出true
    }
}

七、三目运算符

Java中三目运算符语法为

  • 关系表达式 ?值1 :值2
  • 关系表达式 ?(表达式2) : (表达式3)
    含义:先判断关系表达式的值,如果为true,就将表达式2/值1的值作为整个表达式的值,否则,就将表达式3/值2的值作为整个表达式的值。
public class MyClass {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int max = a > b ? a : b;//输出20;因为a>b为false,所以将b的值作为整个表达式的值。
        System.out.println(max);
        int num = a > b ? (a - b) : (b - a);//输出10;因为a>b为false,所以将(b-a)的值作为整个表达式的值。
        System.out.println(num);
    }
}

求最值的思想就是三目运算符,两两相比。

八、instanceof运算符

Java中instanceof运算符语法为

  • object instanceof class
    • object:要判断的对象实例(是引用数据类型,不能是基本数据类型)
    • class:要检查的对象的类或接口

instanceof运算符返回boolean值,如果object是class的实例,则为true,否则为false。

class animal {
}

class dog extends animal {
}
public class MyClass {
    public static void main(String[] args) {
    	animal animal = new animal();
        dog dog = new dog();
        System.out.println(dog instanceof animal);//输出true
        String str = "Hello world";
        System.out.println(str instanceof Object);//输出true;因为object是所有类的父类。
        System.out.println(str instanceof String);//输出true
    }
}

注:object和class必须在同一继承对象树上

public class MyClass {
    public static void main(String[] args) {
        String str = "Hello world";
        ///这行代码将不会编译
        System.out.println(str instanceof Integer);//会报(不可转换的类型;无法将 'java.lang.String' 转换为 'java.lang.Integer')异常
    }
}
  • 31
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值