概述
运算符
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就为真;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的值,判断最后结果。
代码:
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
如果x为true,那么执行y中的内容
如果x为false,那么执行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
最后
以上就是丰富海燕为你收集整理的java基础知识之运算符的全部内容,希望文章能够帮你解决java基础知识之运算符所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复