运算符
1.算数运算符
算数运算符,一眼看到就能知道它是什么。就是我们小学学到的算数运算符号。当然,有些可能比之前学到的用处和用法更多,但是也不用害怕。通过讲解会很容易理解。
(1)减号“-”
减号在java中的作用就是做减法运算,与之前我们学到的基本没有什么不同。要注意的就是相减得两个数可能数据类型不同,那么可能需要类型转换。当然,如果这两个数类型相同可以直接做减法。
如:
1
2
3
4
5
6
7
8
9
10public class Test { public static void main(String[] args) { int a = 10; int b = 5; int c = a - b; System.out.println(c); } }
当数据类型不同时:
如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20public 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中就是做乘法运算。简单举例说明:
如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20public 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.表示连接作用:
这个作用可能有点陌生,但是其实很好理解。它的作用就是把数字和字符串在输出时连接在一起。共同输出。
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19public 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中表示为:“/”。虽然表示方法不同,但是用法是相同的,都是表示两个数做除法运算。
如:
1
2
3
4
5
6
7
8
9int 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.
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23public 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后面{ }中的语句。为了能够更好的理解关系表达式。我们举例说明。
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37public 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就为真;a和b同时为假时,a|b才为假。
(3)“!”,这个符号叫做非,可以理解为“相反”。
如:!a
(一)当 a 表达式 为真时,那么 !a 这个表达式整体为假。
(二):当 a 表达式 为假时,那么 !a 这个表达式整体为真。
总的来说:!a,如果a的值为真,那么结果为假,如果a的值为假,那么结果为真。!a与a的值相反。
(4)“^”,这个符号叫做异或,
如:a^b
(一)当 a 表达式 为真,同时b 表达式 也为真时;那么 a^b 这个表达式整体为假。
(二):当 a 表达式 为真,b 表达式 为假时;那么 a|b 这个表达式整体为真。
(三):当 a 表达式 为假,b 表达式 为真时;那么 a|b 这个表达式整体为真。
(四):当 a 表达式 为假,同时b 表达式 也为假时;那么 a|b 这个表达式整体为假。
总的来说:a^b,a表达式和b表达式的值相同时,a^b就为假;a和b的值不同时,a^b为真。
(5)“&&”,这个符号叫做短路与,它的执行结果与&是相同的。区别在于,这个符合可以提高效率,较少判断条件;
如a&&b:
(一):如果a的值为假,那么a&&b的值为假,b的值不用判断。
(二):如果a的值为真,在判断b的值,根据a和b的值,判断最后结果。
(6)“||”,这个符号叫做短路或。它的执行结果与 | 是相同的。区别在于,这个符合可以提高效率,较少判断条件;
如a||b:
(一):如果a的值为真,那么a&&b的值为真,b的值不用判断。
(二):如果a的值为假,在判断b的值,根据a和b的值,判断最后结果。
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51public 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
如果x为true,那么执行y中的内容
如果x为false,那么执行z中的内容
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19public 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?"第一个数大于第二个数":"第一个数小于第二个数"); } }
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
最后
以上就是丰富海燕最近收集整理的关于java基础知识之运算符的全部内容,更多相关java基础知识之运算符内容请搜索靠谱客的其他文章。
发表评论 取消回复