欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java基础之运算符

程序员文章站 2022-07-04 08:10:34
...

2.7 运算符
运算符的分类Java基础之运算符
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

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

		//测试赋值运算符
		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);	

运行结果:
Java基础之运算符
2.7.3 关系运算符:==、!=、>、<、>=、<=
关系运算符运算的结果是布尔值
Java基础之运算符
==、!=可以被基本数据类型和引用数据类型使用,>、>=、<、<=仅仅针对数值类型+字符类型
字符型显示数值的两种办法:①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 逻辑运算符:&、&&、|、||、!、^
逻辑运算符是用来操作布尔值
Java基础之运算符&两侧都为真,则为真,否则是false,且左侧为false时仍然会执行右侧代码;
|从左到右都要是真,则才是真。若左侧为真,则也会执行右侧代码
&&左边是假,则直接返回假,右侧不验证;||左边是真,则直接返回真,右侧不验证
此为逻辑与的测试
Java基础之运算符
Java基础之运算符
此为逻辑或的测试
Java基础之运算符
Java基础之运算符
此为短路与的测试
Java基础之运算符Java基础之运算符
此为短路或的测试
Java基础之运算符
Java基础之运算符

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 运算符优先级问题
Java基础之运算符
⭐逻辑与、或、非之间有优先级区别!其中逻辑非>逻辑与>逻辑或,例如a||b&&c运算结果是
a||(b&&c),而不是(a||b)&&c
右结合性举例:a=b=3 ==> a=(b=3)

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