Java运算符(算数、逻辑、位、赋值、关系、条件……)

1.运算符简介

所有的程序开发都是一种数字的处理游戏,对于数字处理一定会有所谓的处理模式,而这些操作模式就称为运算符。对于加法而言我们一定使用“+”这个运算符来完成,而对于运算符而言也是有先后关系的,即优先级。就比如小学的时候我们的四则混合运算就是先乘除再加减。

对于程序开发而言提供有大量的基础运算符,这些运算符也都有各自的优先顺序,对于程序开发而言不建议编写很复杂的计算,如下程序:

public class Hello{
	public static void main(String args[]){
	int x=0;
	int y=1;
	int z=x++/y++*++y+y++-y--;
	System.out.println(z);
	}
}

你能一眼看出z的结果吗?是不是不能,如果你在开发中这样写,那么肯定会被人骂,并且现在开发都要去代码尽可能的简介、清晰、明了,因此要在程序中避免这样的复杂计算出现。

2.算数运算符

算数运算符完成数学中的加、减、乘、除四则运算,其中单目运算符有:+(正),-(负),++(自增),--(自减);双目运算符:+(加),-(减),*(乘),/(除),%(取余);其中“  /  ”有两个含义,实数除和整除。

public class Hello{
	public static void main(String args[]){
	int x=8;
	int y=3;
	int z=x/y;
	System.out.println(z);
	}
}

上述呢,8/3,它是一个整除,因此结果是2。

再算数运算符中,最令人头痛的就是++(自加)和 --(自减了):

》++变量、--变量:先进行变量的自增或自减,然后再进行数字的计算;

》变量++,变量--:先使用变量进行计算,而后再进行自增或自减;

比如下面程序:

public class Hello{
	public static void main(String args[]){
	int x=8;
	int y=3;
	int z=x+++--y;//x先参与运算,即x是8,y先减1再参与运算,即y是2,因此8+2=10
	System.out.println("Z="+z);
	System.out.println("X="+x);
	System.out.println("Y="+y);
	}
}

3.关系运算符

关系运算符是用来两个数据之间的比较运算,一般有6种:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于),它们的运算结果是布尔类型。

public class Hello{
	public static void main(String args[]){
	int x=8;
	int y=3;
	if (x>=y){
		System.out.println("x大于等于y");
		}
	}
}

需要注意的时,字符型的数据也可以参与比较运算,比如下面:

public class Hello{
	public static void main(String args[]){
	char x='你';
		System.out.println(x>=1);
	}
}

这时我们得到的结果是true,这是因为char型变量和int变量进行运算时,会转换成int型的变量进行比较,而字符‘ 你 ’的int型变量就是其编码,其是一个很大的数字,因此是大于等于1的,所以结果为true。

4.位运算符

位运算符是对整数按二进制的位进行运算,适用于整数类型和字符类型,位运算符有七个:~(非)、&(与)、|(或)、^(异或)、<<(左移位)、>>(右移位)、>>>(无符号移位),如下是位运算符的代码:

public class Hello{
	public static void main(String args[]){
	int x=4;//二进制为:100
	x=x<<1;//左移1位,1000,其十进制为8
		System.out.println(x);
	}
}

执行结果

5.逻辑运算符

逻辑运算符是对布尔类型的值进行运算,其结果仍未布尔类型,逻辑运算符有6个:&(与)、|(或)、!(非)、^(异或)、&&(条件与)、||(条件或)。

其中&&、||具有短路计算功能,即从布尔表达式从左到右依次逐个计算条件是否城里,一旦能够确定结果就立即终止,不再计算其后各条件,比如下面代码:

public class Hello{
	public static void main(String args[]){
		int i=0;
		boolean x=(1==1)||((++i)==0);//进行逻辑条件或
		System.out.println("x="+x);
		System.out.println("i="+i);
		i=0;
		boolean y=(1==1)|((++i)==0);//进行逻辑或
		System.out.println("y="+y);
		System.out.println("i="+i);
	}
}

运行结果如下:

6.赋值运算符

赋值运算符用一个‘ = ’表示,作用是使变量获得值。赋值运算次序使从右向左的,即先计算表达式的值,再使变量获得表达式的结果。

重点呢,赋值运算符可以和算数、逻辑和位运算符组成复合赋值运算符,构成一些简洁的使用方式,比如‘ += ’:

public class Hello{
	public static void main(String args[]){
		int x=6;
		x+=1;
		System.out.println("x="+x);
	}
}

运算结果:

使用这样的复合赋值运算符,可以使我们的代码看起来更加的整洁和高效。

7.类型强制转换符

类型强制转换符"()"将一个表达式的数据类型强制转换成指定数据类型,比如:

public class Hello{
	public static void main(String args[]){
		double x=6.63;
		int z=(int)x;//将double型的强制转换为int型
		System.out.println("z="+z);
	}
}

运算结果:

8.条件运算符

条件运算符是Java中唯一的一个三目运算符,其格式为:表达式1?表达式2:表达式3,它表示,若表达式1为true,则将表达式2作为表达式的结果,否则就将表达式3做为表达式的结果。

public class Hello{
	public static void main(String args[]){
		double x=6.63,y=7.99,max;
		max=(x>y)?x:y;//条件运算符
		System.out.println("max="+max);
	}
}

运算结果:

9.括号运算符

括号运算符”()“用于改变表达式中运算符的优先级。

10.字符串连接运算符

字符串连接运算符” + “用于将两个字符串连接成一个字符串。

11.点运算符

点运算符” . “用于分隔包、子包、类及类中成员。

12对象运算符

对象运算符instanceof用于判断一个对象是否属于指定类或其子类,运算结果是布尔类型。

13.new运算符

new用算符用于申请数组的存储空间,创建对象。

猜你喜欢

转载自blog.csdn.net/qq_25036849/article/details/108769199
今日推荐