Java表达式与运算符

发布于:2021-07-28 01:39:22

算术运算符

Java 中的算术运算符主要用来组织数值类型数据的算术运算,按照参加运算的操作数的不同可以分为一元运算符和二元运算符。
一元运算符:

二元运算符:


赋值运算符:


条件运算符:

Java中的条件运算符指的是三目运算符。
语法:


布尔表达式?表达式1:表达式2

实例:


int age = 16;
String ageStr = age > 18 ? "成年" : "未成年";
System.out.println(ageStr); // 未成年

位运算符

运算速度最快的就是位运算


逻辑运算符

逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。



关系运算符


运算符的优先级


自增1和自减1

我们要实现一个数的自增1或者自减1,目前可以有以下两种方法:


a=a+1或者a+=1;


a=a-1或者a-=1;


但是由于在编写程序时自增1或者自减1用得非常频繁,java语言提供了两个专门用于变量的自增1和自减1的特殊运算符,其中++是自增1运算符号,可以使操作数自增1,?是自减1运算符号,可以使操作数自减1。比如下面这个例子就是自增1:


int i=1;
i++;
System.out.println(i);//结果是2

需要特别留意的是++和?运算符可以前置、后置,都是合法的语句,如a++和++a都是合法的,上面这两种写法其最终的结果都是是变量a的值加1了,但是它们之间也是有区别的,其区别是:表达是++a会先将a的值自增1,然后在使用变量a。而表达式a++是先使用了a的值,然后再让a的值自增1。也就是说在一些表达式,使用a++和使用++a得到的结果时不一样的。


int a=1;
int b= a++;
System.out.println(b);//这时候b是1
int a=1;
int b= ++a;
System.out.println(b);//这时候b是2
int a=1,b=1,c;
c=++a+b++;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c); //c最后的值是3

++和?两个运算符都只能作用于变量,而不作用域表达式。


逻辑运算符


1、与运算
与运算符号有&和&&两个,表示必须两个条件都为true时,结果才能返回true。如:


(1>2)&&(1>3) (1>2)&&(3>1) (2>1)&&(1>3) (2>1)&&(3>1)


其对应比较运算过程就是


false&&false false&&true true&&false true&&true


也就是最后的结果就是前面三个的返回都是false,只有最后一个是true。


2、或运算
或运算符号有|和||两个,表示两个条件只要有一个满足为true,最后结果返回true。还是以上面例子说明如:


(1>2)&&(1>3) (1>2)&&(3>1) (2>1)&&(1>3) (2>1)&&(3>1)


其对应比较运算过程就是


false&&false false&&true true&&false true&&true


也就是最后的结果就是第一个返回为false,后面三个返回都是true。


3、取反运算符
取反运算符只有一个!,它是单元运算符,这个比较简单,如果是true就返回false,false就返回true,如下面的示例:


!(1>2) !(2>1)


其对应比较运算过程就是


!false !true


所以第一个返回是true,第二个返回是false。


&&和||有一些比较特殊的属性,其运算的顺序是从左至右进行判断的,但是对&&而言如果在判断时得到的结果是false时,那么后面的计算就不会继续,对||而言,如果在判断时得到的结果是true,那么后面的计算也不会继续,这种机制称之为阻断判断或者短路判断,在有些情况之下,这种机制可以提高程序运行的效率。

相关推荐

最新更新

猜你喜欢