java基础知识之运算符

运算符

1.算数运算符

算数运算符,一眼看到就能知道它是什么。就是我们小学学到的算数运算符号。当然,有些可能比之前学到的用处和用法更多,但是也不用害怕。通过讲解会很容易理解。

(1)减号-

减号在java中的作用就是做减法运算,与之前我们学到的基本没有什么不同。要注意的就是相减得两个数可能数据类型不同,那么可能需要类型转换。当然,如果这两个数类型相同可以直接做减法。

 如:

public class Test {
	public static void main(String[] args) {
		int a = 10;
		int b = 5;
		int c = a - b;
		System.out.println(c);
		
	}

}

当数据类型不同时:

如:

public class Test {
	public static void main(String[] args) {
		int a = 10;
		int b = 5;
		int c = a - b;
		System.out.println(c);
		
		
		int d = 10;
		double e = 5.0;
		double f = d - e;  //d - e 为double类型  赋给double不需要强转
		System.out.println(f);
		
	    int x = 5;
	    double y = 10.0;
	    int z = (int) (y - x); //y - x 的结果是double 将double类型赋给int类型   需要进行强转 将结果转为int类型
	    System.out.println(z);
	}

}


在java中基本数据类型有高低级之分(值的范围不同),分别为(byte、short、char)、int、long、float、double。当高级数据类型赋值给低级数据类型时,需要进行强制类型转换。如:int = (int)double;原因是:高级数据类型的取值大于低级数据类型,低级别数据类型无法存的下数据。就像将大杯子中的水倒入小杯子里,小杯子存不下。

(2)乘号*

乘号的作用不用多说。它在java中就是做乘法运算。简单举例说明:

如:

public class Test {
	public static void main(String[] args) {
		int a = 10;
		int b = 5;
		int c = a * b;
		System.out.println(c);
		
		
		int d = 10;
		double e = 5.0;
		double f = d * e;  //d * e 为double类型  赋给double不需要强转
		System.out.println(f);
		
	    int x = 5;
	    double y = 10.0;
	    int z = (int) (y * x); //y * x 的结果是double 将double类型赋给int类型   需要进行强转 将结果转为int类型
	    System.out.println(z);
	}

}


使用*(乘号)时也要向 “-” 号一样注意数据类型的转换。

(3)加号“+

加号在java中有三种含义:(一)做加法运算、(二)表示正数、(三)表示连接作用。虽然看起来用法有点多,但是其实前面两个我们在初中之前已经学过。

a.加法作用

这个作用于减法和乘法相同,知识用作两个数的加法运算,这作用我们再熟悉不过了:

b.表示正数

表示正数也很容易理解,当一个数没有符号时如:5,我们默认它是正数。只是省略了“+”而已,加上“+”我们更能够表示正数;如:+5。看到很容易就知道。

c.表示连接作用

这个作用可能有点陌生,但是其实很好理解。它的作用就是把数字和字符串在输出时连接在一起。共同输出。

代码:

public class TestOpe002{
	public static void main(String[] args){
		

		System.out.println(+36);//正数
		
		System.out.println(4+6);//加法运算
		
		int num=90;
		System.out.println("num="+num);//拼接 num=90  (双引号中的内容会原样输出,之后进行拼接)
		
		System.out.println(5+6+"abc");//11abc  跟字符串运算,会整体变成一个字符串
		
		System.out.println("abc"+5+6);//abc56
		
		System.out.println(5+6+"abc"+5+6);//11abc56
		
	}
}


(4)除法:/

java中除法的表示可能与之前学的有所不同。之前的表示方法为:“÷”。在java中表示为:“/”。虽然表示方法不同,但是用法是相同的,都是表示两个数做除法运算。

如:

	int num1=10/3;
	System.out.println(num1);//3 
	int num3=10/4;
	System.out.println(num3);//2 两个整数类型运算,结果是int类型,小数部分直接舍去。
		
		 
	double d1=10/3.0;
	System.out.println(d1);//只要有一个操作数是浮点类型,那么结果的值就是浮点型的。
		


2.赋值运算符

赋值运算符,表示为=。起到赋值的作用。简单说,就是等于的作用。不同的是,数学中的“=”,运算时是由左至右,表示等号左边的值等于右边的值。而java中,运算是由右至左,表示的是,将等号右边的值(或地址,在后面讲到)赋给左边。

如:

int a = 10;

这句代码表示:声明一个整型变量a,并且将10赋给a。那么a的值就是10.

代码:

public class TestOpe004{
	public static void main(String[] args){
		//给出两个数
		//int num1=10;
		//int num2=30;

		//输出交换前的两个数
		System.out.println("交换前的num1="+num1);
		System.out.println("交换前的num2="+num2);

		//进行交换。使用第三变量作为中转		
		int t;
		t=num1;
		num1=num2;
		num2=t;


		//输出交换后的两个数
		System.out.println("交换后的num1="+num1);
		System.out.println("交换后的num2="+num2);
		
	}
}
将两个变量的值进行交换

3.关系运算符

所谓关系运算符,就是比较大小。其结果可能是< , > , =。它的作用与数学中的比较关系相同,用法也是一样的;如 3<5 , 8>4 , 7=7

我们在数学曾今学过判断表达式:if(){}..else(){};它的作用就是如果if括号中的表达式成立,那么执行if后面{ }中的语句;如果不成立,就执行else后面{ }中的语句。为了能够更好的理解关系表达式。我们举例说明。

代码:

public class TestOpe006{
	public static void main(String[] args){
		//给出三个数
		int num1=50;
		int num2=30;
		int num3=90;
		int t;
		//输出比较前的三个数
		System.out.println(num1+"  "+num2+"  "+num3);
		
		//进行比较
		if(num1>num2){
		 
			t=num1;
			num1=num2;
			num2=t;
		}
		
		if(num1>num3){
		 
			t=num1;
			num1=num3;
			num3=t;
		}
		
		if(num2>num3){
			 
			t=num2;
			num2=num3;
			num3=t;
		}
		
		
		//输出比较后的三个数
		System.out.println(num1+"  "+num2+"  "+num3);
	}
}
比较三个数的大小,并由小到大输出

4.逻辑运算符

逻辑运算符,就是做一些逻辑判断,主要就是先判断所给的表达式是否正确。然后通过逻辑运算符判断最后结果 。逻辑运算符,一般与布尔类型(boolean)结合使用,如果结果为真,返回ture;反之,返回false;逻辑运算符主要包括:

(1)&,这个符号叫做逻辑与,可以理解为“并且”。

: a&b

(一):当 a 表达式 为真,并且b 表达式 也为真时;那么 a&b 这个表达式整体为真。

(二):当 a 表达式 为真,并且b 表达式 为假时;那么 a&b 这个表达式整体为假。

(三)当 a 表达式 为假,并且b 表达式 也为真时;那么 a&b 这个表达式整体为假。

(四)当 a 表达式 为假,并且b 表达式 也为假时;那么 a&b 这个表达式整体为假。

总的来说:a&b,只有当a表达式和b表达式同事为真时,a&b才为真,其他情况均为假。

(2)”|”,这个符号叫做逻辑或,可以理解为“或者”;

如:a|b;

(一)当 a 表达式 为真,同时b 表达式 也为真时;那么 a|b 这个表达式整体为真。

(二):当 a 表达式 为真,b 表达式 为假时;那么 a|b 这个表达式整体为真。

(三):当 a 表达式 为假,b 表达式 为真时;那么 a|b 这个表达式整体为真。

(四):当 a 表达式 为假,同时b 表达式 也为假时;那么 a|b 这个表达式整体为假。

总的来说:a|b,只要a表达式或者b表达式有一个为真时,a|b就为真;ab同时为假时,a|b才为假。

(3)“!”,这个符号叫做,可以理解为“相反”。

如:!a

(一)当 a 表达式 为真时,那么 !a 这个表达式整体为假。

(二):当 a 表达式 为假时,那么 !a 这个表达式整体为真。

总的来说:!a,如果a的值为真,那么结果为假,如果a的值为假,那么结果为真。!aa的值相反。

(4)^,这个符号叫做异或

如:a^b

(一)当 a 表达式 为真,同时b 表达式 也为真时;那么 a^b 这个表达式整体为假。

(二):当 a 表达式 为真,b 表达式 为假时;那么 a|b 这个表达式整体为真。

(三):当 a 表达式 为假,b 表达式 为真时;那么 a|b 这个表达式整体为真。

(四):当 a 表达式 为假,同时b 表达式 也为假时;那么 a|b 这个表达式整体为假。

总的来说:a^ba表达式和b表达式的值相同时,a^b就为假;ab的值不同时,a^b为真。

(5)&&,这个符号叫做短路与它的执行结果与&是相同的。区别在于,这个符合可以提高效率,较少判断条件;

a&&b:

(一):如果a的值为假,那么a&&b的值为假,b的值不用判断。

(二):如果a的值为真,在判断b的值,根据ab的值,判断最后结果。

(6)||,这个符号叫做短路或。它的执行结果与 | 是相同的。区别在于,这个符合可以提高效率,较少判断条件;

a||b:

(一):如果a的值为真,那么a&&b的值为真,b的值不用判断。

(二):如果a的值为假,在判断b的值,根据ab的值,判断最后结果。


代码:

public class TestOpe007{
	public static void main(String[] args){
		//逻辑非 !
		System.out.println(!true);//false
		System.out.println(!false);//true
		
		System.out.println("-----------------------------------------");
		
		//逻辑与   & 只要有一个操作数是false,那么结果一定是false
		System.out.println((2>1)&(7>8));
		System.out.println(true&true);
		System.out.println(false&false);
		System.out.println(false&true);
		
		System.out.println("-----------------&------------------------");
		//逻辑或 |  只要有一个操作数是true,那么结果一定是true
		System.out.println(true|false);
		System.out.println(true|true);
		System.out.println(false|false);
		System.out.println(false|true);
		
		System.out.println("------------------|-----------------------");
		
		//逻辑异或 ^  操作数相同,结果为false。操作数不同,结果为true 。
		System.out.println(true^false);
		System.out.println(true^true);
		System.out.println(false^false);
		System.out.println(false^true);
		
		System.out.println("-----------------------------------------");
		
		//短路与  && 我们发现短路与,跟逻辑与执行结果是一模一样的。
		//区别:如果第一个操作数是false,那么结果一定是false,后面的表达式不用执行。提高效率
		
		System.out.println(true&&false);
		System.out.println(true&&true);
		System.out.println(false&&false);
		System.out.println(false&&true);
		
		System.out.println("-----------------------------------------");
		
		//短路或 || 我们发现短路或,跟逻辑或执行结果是一模一样的。
		//区别:如果第一个操作数是true,那么结果一定是true,后面的表达式不用执行。提高效率
		System.out.println(true||false);
		System.out.println(true||true);
		System.out.println(false||false);
		System.out.println(false||true);
		
		System.out.println("-----------------------------------------");
	}
}


5.条件运算符

条件运算符,又叫三目运算符。三目运算符的格式:x ? y : z。它往往被用来代替if..else来进行判断。

含义:

x ? y : z

x---代表一个条件表达式,结果是true或者false

如果xtrue,那么执行y中的内容

如果xfalse,那么执行z中的内容

 代码:

public class TestOpe008{
	public static void main(String[] args){
		int num1=4;
		int num2=7;
		//()中是一个条件判断,一个关系表达式,它的值是布尔值(true,false),如果这个值是true,那么执行{}中的语句,如果//不是true,那么执行else后面的语句。
		
		if(num1>num2){
		
			System.out.println("第一个数大于第二个数");
		}else{
			System.out.println("第一个数小于第二个数");
		}
		
		System.out.println("-----------------下面是三目运算符(条件运算符)表达:--------------------");
		
		System.out.println(num1>num2?"第一个数大于第二个数":"第一个数小于第二个数");
		
	}
}
其中最后: num1>num2?"第一个数大于第二个数":"第一个数小于第二数"。num1>num2相当于三目运算符中的X表达式,"第一个数大于第二个数"相当于Y,"第一个数小于第二个数",相当于Z。这种方式比if-else简单便捷许多,但是三目运算符只能做只有两种情况的比较。

 

6.运算符的优先级

所谓优先级,就是当一个表达式中出现了多个运算符,先执行哪个,后执行哪个的问题。

常用运算符的优先级为:

 赋值运算符<条件运算符<逻辑运算符<关系运算符<算数运算符<单目运算符

单目运算符就是:“!”运算符

括号的优先级最高,先算括号里的

 

例如:

 5<6 | 'A'>'a' && 12*6<=45+23&&!true

=5<6 | 'A'>'a' && 12*6<=45+23&&false

=5<6 | 'A'>'a' && 72<=68&&false

=true |false  &&false &&false

=true&&false &&false

=false

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值