Java运算符和表达式

1.算术运算符
Java算数运算符除通常的加(+)、减(-)、乘(*)、除(/)之外,
还包括取模运算(%)和自增(++)及自减(–)运算。

  1. 使用%运算符
    取模运算(%)意为取余数,可适用于整数char类型以及浮点数
		float f = 3.14f;
		float p = 2.02f;
		char x = 'a';
		char y = 'b';
		System.out.println(f%p);//1.1200001
		System.out.println(y%x);//1
  1. 使用"++“和”–"运算符
    Java的自增运算符(++)和自减运算符(–)继承自C++,
    可以使变量的值加1或减1,但其写在变量前和变量后有不同的效果:
    (1)如果写在变量前表示在使用这个变量之前加1或减1
    (2)如果写在变量之后表示这个变量使用完之后再加1或减1
		int a = 10, b = 20;
		int c1 = a++; // 先将a的值赋给c1,然后a再自加
		int c2 = ++b; // 先将b的值自加,然后再赋值给c2

2.关系运算符
关系运算符用于判断数据之间的大小关系。
包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、
不等于(!=)六个运算符。
关系运算的结果为boolean类型,如果关系成立为true,否则为false。
3.逻辑运算符
逻辑运算建立在关系运算的基础之上,
逻辑运算符包括:与(&&)、或(||)和非(!)。
参与逻辑运算的变量或表达式都是boolean类型,运算结果也是boolean类型。
逻辑运算规则如下表所示:
在这里插入图片描述
关于“短路逻辑”
Java逻辑运算遵循“短路逻辑”的原则:
(1)对于“&&”,当第一个操作数为false时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的结果一定是false;
(2)对于“||”,当第一个操作数为true时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是true。

	public static void main(String[] args) {
		//if(isTrue() | isFalse()) {} //输出两次It ran!,说明“|”运算符不管怎样条件都运行
		//if(isTrue() || isFalse()) {} //输出一次It ran!,说明“||”运算符只要有一个判断为true则不进行后续判断
		//if(isFalse() & isTrue()) {} //输出两次It ran!,说明“&”运算符不管怎样条件都运行
		if(isFalse() && isTrue()) {} //输出一次It ran!,说明“&&”运算符只要有一个判断为false则不进行后续判断
	}
	public static boolean isTrue() {
		System.out.println("It ran!");
		return true;
	}
	public static boolean isFalse() {
		System.out.println("It ran!");
		return false;
	}

4.赋值运算符
"=“称为赋值运算符,用于对变量赋值。关于赋值运算符,除了将右边的表达式计算出来赋给左边以外还具备如下特点:
赋值表达式本身也有值,其本身之值即为所赋之值。
在赋值运算符”="前加上其他运算符,即为扩展赋值运算符。
在这里插入图片描述
5.条件(三目)运算符
条件运算符又称“三目”运算符,其结构为:boolean表达式 ?表达式1 :表达式2
条件运算符的规则如下:
1.先计算boolean表达式;
2.如果boolean表达式的值为true,整个表达式的值为表达式1的值;
3.如果boolean表达式的值为false,整个表达式的值为表达式2的值。
条件(三目)运算符的嵌套
条件运算符可以嵌套使用,所谓嵌套是指在条件(三目)表达式:
“boolean表达式?表达式1:表达式2”中的表达式1或表达式2也是
条件(三目)表达式。

		int a = -3;
		String r = a > 0 ? "正数" :(a == 0 ? "0":"负数");
		System.out.println(r); // 结果为负数

6.位运算符
Java中有六种位运算符:& 按位与,| 按位或,^ 按位异或,~取反,<<左移,>>右移
操作数只能为整型和字符型数据。

		int t = 2 & 4;//0010 0100 输出0
        int z = 2 ^ 4;//0010 0100 异或输出6
        int m = 2 << 1;//10左移一位得100 输出4
        int x = -4 >>> 1;//无符号右移一位,缺位补0
        int y = -4 >> 1;//带符号右移一位,缺位补符号位
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值