Java运算符详解

Java运算符详解

学习运算符之前,需要先搞清楚运算符和表达式的概念。

1.  运算符的概念

对变量或者常量进行操作的符号被称之为运算符。

2.  表达式的概念

用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。

3.  运算符的分类

3.1算术运算符

算术运算符包括以下几种:

+:加法,包括以下三种情况,

数字相加。

字符相加,拿字符在计算机底层存储的对应的数据值(字符在ASCII码表中对应的数字)来参与运算的。

字符串相加,是进行字符串的拼接,字符串的数据和其他类型的数据进行相加的结果是字符串类型的。

-:减法,整数类型或者小数类型的数据做减法。

*:乘法,整型或者小数类型的数据做乘法。

/:除法,得到的是两个数相除的商。

%模,得到的是两个数相除的余数。

++,对变量的值做加1的处理。如果++是写在变量的后面,是先拿变量原先的值参加运算,再对变量的值加1; 如果++是写在变量的前面,先把原来变量的值加1,再用加1后的数据参加运算。

--,对变量的值做减1的处理,如果--是写在变量的后面,是先拿变量原先的值参加运算,再对变量的值减1; 如果--是写在变量的前面,先把原来变量的值减1,再用减1后的数据参加运算。

代码示例:

public class OperatorDemo1 {
   
public static void main(String[] args){
       
int a = 1;
       
int b = 2;
       
char c = 'c';
       
//加法,数字相加
       
System.out.println(a+b);
       
//加法,字符相加
       
System.out.println(a+c);
       
//加法,字符串和字符串相加,字符串和其他类型的数据相加
       
System.out.println("hello"+"everybody");
       
System.out.println("hello"+a);
       
//乘法
       
System.out.println(a*b);
       
//除法,求商
       
System.out.println(a/b);
       
//除法,求模
 
      System.out.println(a%b);
       
//++定义在变量的前面
       
System.out.println(++a);
       
//++定义在变量的后面
       
System.out.println(a++);
       
//--定义在变量的前面
       
System.out.println(--b);
       
//--定义在变量的后面
       
System.out.println(b--);
   
}
}

3.2赋值运算符

基本的赋值运算符:=

扩展的赋值运算符:+=、-=、*=、/= 、%= 

把左边和右边的结果赋值给左边。

注意:左边不能是常量。

隐含了一个强制类型转换。.

代码示例

public class OperatorDemo2 {
   
public static void main(String[] args){
       
int a = 1;
       
short b = 2;
       
// +=
       
a += 10;
       
b +=20;//b +=20相当于b = (short)(b+20),隐含了一个强制的数据类型转换。
       
System.out.println(a);
       
System.out.println(b);
       
// -=
       
System.out.println(a -= 1);
       
// *=
       
System.out.println(a *= 2);
       
// /=
       
System.out.println(a /= 2);
       
// %=
       
System.out.println(a %= 2);
   
}
}

3.3关系运算符

常见的关系比较运算符有:==,!=,>,<,>=,<=。

关系运算符的结果都是boolean型,也就是要么是true,要么是false。

代码示例:

public class OperatorDemo3 {
   
public static void main(String[] args){
       
int a = 10;
       
int b = 20;
       
// ==
       
System.out.println(a == b);
       
// !=
       
System.out.println(a != b);
       
// >
       
System.out.println(a >b);
       
// <
       
System.out.println(a <b);
       
// >=
       
System.out.println(a >=b);
       
// <=
       
System.out.println(a <=b);
   
}
}

3.4逻辑运算符

作用:逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 && x<6。

逻辑运算符的分类:

与:&    有false则false,无论左边真假,右边都参与运算。

或:|      有true则true,无论左边真假,右边都参与运算。

异或:^ 相同则false,不同则true

非:!      true则false,false则true

双与:&&如果左边为true,右边参与运算;当左边判断为false时,整体为false,右边不再参与运算。

双或:|| 如果左边为true,右边不再参与运算,整体为true;如果左边为false,判断右边是否为true。

综上考虑,&&和||的执行效率更高,所以在实际开发中一般都用&&和||。

代码示例:

public class OperatorDemo4 {
   
public static void main(String[] args){
       
int a = 10;
       
int b = 20;
     
  int c = 30;
       
System.out.println((a>b)& (a>c));// false & false
       
System.out.println((a<b)& (a>c)); // true & false
       
System.out.println("---------------");
       
System.out.println((a>b)| (a>c));// false | false
       
System.out.println((a<b)| (a>c)); // true | false
       
System.out.println("---------------");
       
System.out.println((a>b)^ (a>c));// false ^ false
       
System.out.println((a<b)^ (a>c)); // true ^ false
       
System.out.println("---------------");
  
     System.out.println((a>b)); // false
       
System.out.println(!(a>b)); // !false
       
System.out.println(!!(a>b)); // !!false
       
System.out.println("---------------");
       
System.out.println((a>b)&& (a>c));// false && false
       
System.out.println((a<b)&& (a>c)); // true && false
       
System.out.println("---------------");
       
System.out.println((a>b)|| (a>c));// false || false
       
System.out.println((a<b)|| (a>c)); // true || false
   
}
}

3.5三元运算符

格式:

(关系表达式)?表达式1:表达式2;

如果条件为true,运算后的结果是表达式1;

如果条件为false,运算后的结果是表达式2;

代码示例:

public class OperatorDemo5 {
 
  public static void main(String[] args) {
       
int a = 10;
       
int b = 20;
       
int c = (a>b) ? a :b;
       
System.out.println("c:" + c);
   
}
}

 


猜你喜欢

转载自blog.csdn.net/qq_34236718/article/details/80573523
今日推荐