Java基础之运算符

2.7 运算符
运算符的分类在这里插入图片描述
2.7.1 算数运算符
+、-、*、/、%、++、–
一、一元运算符的运算规则
m = l++;先给m赋值,再自增;
m = ++l;先自增,再给m赋值;

		int l = 3;
		int m = ++l;//先自增,再给m赋值
		System.out.println("l="+l+'\n'+"m="+m);//结果分别为4、4
		l = 3;
		m = l++;//先给m赋值,再进行自增
		System.out.println("l="+l+'\n'+"m="+m);//结果分别为4、3

运行结果:
在这里插入图片描述
二、二元运算符+、-、、/、%的运算规则
1、整形运算
⭐有一个数为long时,结果为long
⭐没有long时其他的整形都为int
在这里插入图片描述2、浮点数运算
⭐有一个为double则都是double
⭐只有两个都是float才为float
在这里插入图片描述
3、取余运算
一般情况下用整形,也可以用浮点数,符号与左边操作数相同
在这里插入图片描述
2.7.2 赋值运算符以及扩展赋值运算符
=、-=、+=、
=、/=、%=
一、a=3,将3赋值给a
二、扩展运算符
在这里插入图片描述

		//测试赋值运算符
		int n = 3;
		int o = 4;
		n+=3;
		System.out.println("n="+n);
		n-=3;
		System.out.println("n="+n);
		n*=3;
		System.out.println("n="+n);
		n/=3;
		System.out.println("n="+n);
		n%=3;
		System.out.println("n="+n);
		n = 1;
		n*=o+1;//相当于n=n*(o+1),将右侧看作为一个部分
		System.out.println("n="+n);	

运行结果:
在这里插入图片描述
2.7.3 关系运算符:==、!=、>、<、>=、<=
关系运算符运算的结果是布尔值
在这里插入图片描述
==、!=可以被基本数据类型和引用数据类型使用,>、>=、<、<=仅仅针对数值类型+字符类型
字符型显示数值的两种办法:①0+···②强制转化

/**
 * 测试关系运算符
 * @author 14323
 *
 */

public class TestOperator02 {
	public static void main(String[] args) {
		int a = 3;
		System.out.println(3==a);
		System.out.println(3!=a);
		System.out.println(a<5);
		System.out.println(a>1);
		
		char b = 'a';
		char c = 'b';
		System.out.println(0+b);
		System.out.println((int)b);
		System.out.println(b>c);
	}
}

2.7.4 逻辑运算符:&、&&、|、||、!、^
逻辑运算符是用来操作布尔值
在这里插入图片描述&两侧都为真,则为真,否则是false,且左侧为false时仍然会执行右侧代码;
|从左到右都要是真,则才是真。若左侧为真,则也会执行右侧代码
&&左边是假,则直接返回假,右侧不验证;||左边是真,则直接返回真,右侧不验证
此为逻辑与的测试
在这里插入图片描述
在这里插入图片描述
此为逻辑或的测试
在这里插入图片描述
在这里插入图片描述
此为短路与的测试
在这里插入图片描述在这里插入图片描述
此为短路或的测试
在这里插入图片描述
在这里插入图片描述

2.7.5 位运算符:~(取反)、&(按位与)、|(按位或)、^(按位异或)、<<(位左移)、>>(位右移)
位运算符是对数字做按位运算
3 0011 ~:1100
4 0100 ~:1011
&: 0000=0
|: 0111=7
^: 0111=7
(>>:2*2则可以表示为2<<1)
(<<:4/2则可以表示为4>>1)

/**
 * 测试位运算符
 * @author 14323
 *
 */
public class TestOperator04 {
	public static void main(String[] args) {
		System.out.println(3&4);//测试按位与
		System.out.println(3|4);//测试按位或
		System.out.println(3^4);//测试按位异或
		System.out.println(~3);//测试取反
		
		//移位测试
		System.out.println(4<<1);//相当于4*2
		System.out.println(12>>2);//相当于12/4
	}
}

2.7.6 字符串连接符:+
字符串连接符不是基本数据类型,二是一种对象
3+4=7 //作为数值运算
3+”4“=34//作为字符串连接符
⭐只有在碰到字符串时”+“才会变成字符串连接符

/**
 * 测试字符串运算符
 * @author 14323
 *
 */
public class TestOperator05 {
	public static void main(String[] args) {
		String a = "345";
		int b = 4;
		int c = 5;
		char d = 'a';
		System.out.println(a+b+c);//先碰到字符串变为字符串连接符
		System.out.println(b+c);//数值运算符
		System.out.println(b+c+a);//先为运算符,再碰到字符串变为字符串连接符
		System.out.println(b+c+a+c);
		System.out.println(d+1);//字符型在进行运算时使用字符集数值
	}
}

2.7.7 条件运算符:x?y:z
x:布尔表达值 y:当x为true的情况下 z:当x为false的情况下

/**
 * 测试条件运算符
 * @author 14323
 *
 */
public class TestOperator06 {
	public static void main(String[] args) {
		int score = 80;
		int x = -100;
		String type = score<60?"不及格":"及格";
		System.out.println(type);
		//实质上就是以下选择结构
		if(score<60) {
			System.out.println("不及格");
		}else {
			System.out.println("及格");
		}
		
		//拓展测试,结果为-1;
		System.out.println(x>0?1:(x==0?0:-1));
	}
}

2.7.8 运算符优先级问题
在这里插入图片描述
⭐逻辑与、或、非之间有优先级区别!其中逻辑非>逻辑与>逻辑或,例如a||b&&c运算结果是
a||(b&&c),而不是(a||b)&&c
右结合性举例:a=b=3 ==> a=(b=3)

⭐以上课堂笔记及心得均来自于高淇大哥的讲课内容!!!后面捎带一句对不起高老大我天天在B站上白嫖你的视频!!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值