前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java入门系列-06-运算符

Java入门系列-06-运算符

原创
作者头像
享智同行
修改2019-06-21 10:09:58
3650
修改2019-06-21 10:09:58
举报
文章被收录于专栏:享智同行享智同行

这篇文章为你搞懂2个问题

  1. java 中的常用运算符有哪些?如何使用?
  2. 这些运算符的运算优先级是怎样的?

算数运算符

明显是做数学运算的,包括以下符号:

  1. + 加法运算 敲一敲:
代码语言:javascript
复制
public class DemoAdd {
	public static void main(String[] args) {
		int sum=2+3;
		System.out.println(sum);//输出变量 sum 的值
		int a=5;
		int b=3;
		int result=a+b;//将变量 a 的值与变量 b 的值相加
		System.out.println(result);
		result+=20;//相当于 result=result+20;
		System.out.println(result);
	}
}

当对一个变量本身进行算数运算可以使用 +=-=*=/=%= 进行简化 int a=10;a+=2; 在声明变量后进行操作 但声明变量时赋值便是非法的 int x+=10;

  1. - 减法运算 敲一敲:
代码语言:javascript
复制
public class DemoMinus {
	public static void main(String[] args) {
		int diff=2-3;
		System.out.println("差:"+diff);
		double a=55.4;
		double b=5.2;
		double result=a-b;
		System.out.println("变量a的值减变量b的值等于:"+result);//结果不一定精准
		result-=10;//相当于 result=result-10;
		System.out.println("结果:"+result);
	}
}
  1. * 乘法运算 敲一敲:
代码语言:javascript
复制
public class DemoMultiply {
	public static void main(String[] args) {
		int product=2*3;
		System.out.println("积:"+product);
		double a=10;
		double b=5;
		double result=a*b;
		System.out.println("变量a的值乘以变量b的值等于:"+result);
		result*=10;//相当于 result=result*10;
		System.out.println("结果:"+result);
	}
}
  1. / 除法运算 敲一敲:
代码语言:javascript
复制
public class DemoDivide {
	public static void main(String[] args) {
		int product=5/2;
		System.out.println("商:"+product);
		double a=5;
		double b=2;
		double result=a/b;
		System.out.println("变量a的值除以变量b的值等于:"+result);
		result/=10;//相当于 result=result/10;
		System.out.println("结果:"+result);
	}
}
  1. % 取模、取余运算 敲一敲:
代码语言:javascript
复制
public class DemoRemainder {
	public static void main(String[] args) {
		//正常求余数
		int result=10%3;
		System.out.println("10%3="+result);
		//小数在前
		int result1=2%5;
		System.out.println("2%5="+result1);
		//其中一个是负数
		int result2=-3%2;
		System.out.println("-3%2="+result2);
		//两个数都是负数
		int result3=-2%-5;
		System.out.println("-2%-5="+result3);
	}
}
  1. ++ -- 自增、自减运算符 敲一敲:
代码语言:javascript
复制
public class DemoSelf {
	public static void main(String[] args) {
		int a=10;
		a++;//后置自增
		System.out.println(a);//11
		--a;//前置自减
		System.out.println(a);//10
		System.out.println(++a);//11
		System.out.println(a++);//11
		System.out.println(a);//12
	}
}

自增、自减运算符是对一个变量本身进行加1或减1的操作 运算符可以防置在变量前或后 前置的运算符会先进行加1或减1的操作然后再使用,而后置则是先使用再进行操作

比较运算符

对比两者之间的关系,运算后的结果是布尔值

符号

介绍

>

大于

<

小于

==

等于 用于比较值和内存地址

!=

不等于

>=

大于等于

<=

小于等于

敲一敲:

代码语言:javascript
复制
public class DemoCompare {
	public static void main(String[] args) {
		System.out.println(10>5);//10大于5 true
		System.out.println(10<5);//10小于5 false
		System.out.println(1!=1);//1不等于1 false
		System.out.println(10==5);//10等于5 false
		System.out.println(9>=9);//9大于等于9 true
		System.out.println(5<=8);//5小于等于8 true
	}
}

逻辑运算符

符号

介绍

&&

与 运算符两边都为true运算结果为true

||

或 运算符只要一边为true运算结果为true

!

非 取反,为true时结果为false,为false时结果为true

敲一敲:

代码语言:javascript
复制
public class DemoLogic {
	public static void main(String[] args) {
		int age=50;
		int money=100;
		//两边都不符合条件 false
		System.out.println((age<40)&&(money>100));
		//只符合一个条件 false
		System.out.println((age<60)&&(money>100));
		//两边都符合条件 true
		System.out.println((age<60)&&(money>30));

		//两边都不符合条件 false
		System.out.println((age<40)||(money>100));
		//只符合一个条件 true
		System.out.println((age<60)||(money>100));
		//两边都符合条件 true
		System.out.println((age<60)||(money>30));
		
		boolean isBig=age>60;//false
		System.out.println(!isBig);//取反 true
	}
}

位运算符

用于对二进制数据的操作

符号

介绍

>>

对二进制向右位移n位

<<

对二进制向左位移n位

&

位与运算 同位的二进制都为1时结果为1

|

位或运算 同位的二进制有一个为1时结果为1

^

异或 从二进制高位开始比较,如果相同则为0,不相同则为1。

~

位非

敲一敲: demo1

代码语言:javascript
复制
public class DemoBit {
	public static void main(String[] args) {
		System.out.println(10>>1);//5
		System.out.println(7<<1);//14
	}
}

位移运算符操作的是二进制,上例中 10 的二进制是 1010 向右位移1位 变成了 101 左边空缺将用 0 补上 0101 转为10进制为 5 向左位移原理一样 7 的二进制为 0111 向左位移后,右边补0 为1110 转为10进制为 14

demo2

代码语言:javascript
复制
public class DemoBit {
	public static void main(String[] args) {
		System.out.println(5|1);//5
		System.out.println(3|2);//3
	}
}

上例中 5 和 1 转为二进制如下 5 0101 1 0001 5 0101 对应的位中只要有1 结果为1

demo3

代码语言:javascript
复制
public class DemoBit {
	public static void main(String[] args) {
		System.out.println(7^4);//3
	}
}

7和4的二进制如下 7 0111 4 0100 3 0011 对应位值相同为0不同为1

运算符的优先级

优先级顺符由高到低是 小括号 > 算数运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

试一试

  1. 将一个整数除以2或乘2而不使用 + - * / ,如何实现?

搜索关注公众号「享智同行」,第一时间获取技术干货 回复"006"获取答案

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 算数运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 运算符的优先级
  • 试一试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档