Java中的六种常用运算符

Java中的常用六种运算符

六种运算符:算术运算符、关系运算符、逻辑运算符、赋值运算符、字符串连接、三目/条件运算符。

(1)算术运算符

包含+、-、*、/、%、++、--。

和数学计算差不多。不同之处如下:

<1>除法:当两个整数相除时,结果有小数,则会无条件舍去,只保留整数。

<2>%表示取余数。余数为0,则表示可以被整除。

<3>++和--的用法

 这里以++为例子,--同理即可。有两种情况:

  • 单独使用情况

所谓单独使用,指的是一个语句里面,只有a++或者++a。不能出现其他的代码。

上面的代码单独使用,++在前、在后一个效果

  • 被使用情况

被使用情况下,++在前,例如:++a相当于a=a+1。

上面代码,b=++a相当于a=a+1,然后b=a。所以b的最终结果为a自加1后的值,即:b=11。

被使用情况下,++在后,例如:a++相当于a。

上面代码,b=a++相当于b=a,然后a=a+1。所以b的最终结果为a的值,即:b=10。

所谓被使用就是除了++a或者a++之外,含有其他语句,例如:上面代码++a之后含有赋值语句。

 

(2)关系运算符

包含>、<、>=、<=、==、!=。

关系运算的结果都是boolean类型,即:true或者false。关系成立,则为true,关系不成立,则为false。

 

(3)逻辑运算符

包含&&(与)、||(或)、!(非)。

与(&&)运算:全为true,整个表达式结果则为true。

或(||)运算:有一个为true,则整个表达式结果为true。

非(!)运算:非真则假。

逻辑运算符一般要和关系运算符一起使用。所以逻辑运算的结果也为boolean值。

逻辑运算两个特殊之处:

  • 逻辑与短路(&&)现象

     逻辑与短路指的是当多个关系表达式通过与(&&)运算时,第一个关系表达式如果为false,那么后面的关系表达式的代码就不会执行。

     举例说明,代码如下:

Java中的六种常用运算符_第1张图片

以上代码分析:

       由于a=5,b=6,所以第一个关系a>b为false,出现与短路现象,所以++ac两个表达式不会被执行,所以最终结果flag=false,而a和b的值不会增加减少。

       换句话说,如果没有出现与短路,那么代码执行结束后,a应该加1,b应该减1。

  • 逻辑或短路(||)现象

     逻辑或短路指的是当多个关系表达式通过或(||)运算时,第一个关系表达式如果为true,那么后面的关系表达式的代码就不会执行。

     代码和与短路类似。

Java中的六种常用运算符_第2张图片

分析和与短路类似。

 

(4)赋值运算符

包含=、+=、-=、*=、/=、%=。

赋值可以分为两类:

  • 简单赋值运算符:=
  • 扩展赋值运算符:+=、-=、*=、/=、%=

扩展赋值运算符具有数据类型强制转换的功能

上面代码都是给s进行赋值操作,但是第二种方式却编译错误。

分析:因为short类型在参与运算时,一律先转换为int类型,然后再进行计算。s+=10相当于s=s+10,但是由于扩张赋值运算符具有强制转换功能,所以s+=10等价于s=(short)(s+10),结果编译正确。相反的,简单赋值不具有该功能,所以s=s+10计算时,先转换为int类型,s+10结果为int类型,而s为short类型,所以数据类型不匹配,编译错误。

 

(5)字符串连接运算符

包含+,就一个加号表示。

连接运算符也有两种情况:

  • 若两边是数值,则直接做加法运算。
  • 若有一边是字符串,则进行字符串连接。

常见面试题:    

// 下面输出结果分别为多少
System.out.println(10+20+30+"");
System.out.println(10+20+""+30);
System.out.println(""+10+20+30);

第一个结果为字符串"60"。

第二个结果为字符串"3030"。

第三个结果为字符串"102030"。

 

(6)三目/条件运算符

格式:表达式 ? 值1:值2

当表达式的值为true时,整个表达式的值取值1。

当表达式的值为false时,整个表达式的值取值2。

三目运算符可以替换简单的if...else结构。

 

 

 

你可能感兴趣的:(Java基础语法)