运算符

262 阅读4分钟

什么是运算符

运算符是一种特殊的符号,用于表示数据的运算,赋值和比较等。

  1. 算术运算符
  2. 赋值运算符
  3. 关系运算符
  4. 逻辑运算符
  5. 位运算符
  6. 三元运算符

算术运算符

基本介绍
算术运算符是用于对数值进行运算,在Java程序使用比较多

算术运算符表格 微信截图_20221031105419.png

运算符的使用

  1. +,-,*,/,%,++,--,重点讲解/,%,++
// /的使用
System.out.println(10/4); //数学反面是2.5,但是在java是2
System.out.println(10.0/4);java2.5
double a = 10/4;//因为java10/4是2,2=>2.0
System.out.println(a);//2.0

// % 取模,取余、
System.out.println(10%3);//1
System.out.println(-10%3);//-1
System.out.println(10%-3);//1
System.out.println(-10%-3);//-1

// ++ 的使用
int i= 1;
++i;//等价于i= i+1;所以i=2;
i++;//等价于i= i+1;所以i=3;
System.out.println(i);//3
/*
  作为表达式
  ++i;前++,先自增,在赋值
  i++;后++,先赋值,在自增
*/
int a = 1;
int b= a++;
System.out.println("a="+a+"b="+b);//a=2 b=1;
  1. 自增:++作为独立语句使用,前++ 和 后++ 都等价于i=i+1;作为表达式使用:前++表示先加后赋值,后++表示先赋值后++。
// ++ 的使用
int i= 1;
++i;//等价于i= i+1;所以i=2;
i++;//等价于i= i+1;所以i=3;
System.out.println(i);//3
/*
  作为表达式
  ++i;前++,先自增,在赋值
  i++;后++,先赋值,在自增
*/
int a = 1;
int b= a++;
System.out.println("a="+a+"b="+b);//a=2 b=1;
  1. --运算符 也是一个道理。
    细节说明
    1.对于除号"/",它的整数除和小数除是有区别的:整数之间用除法;只会保留整数部分,小数部分会被舍去。
    2.对于取模时,可以等价于a%b=a-a/b*b;
    3.当把自增当作一个独立的语言使用时,不管是++i;还是i++;都一样的。
    4.当自增单做一个表达式使用时 j= i++;等价于j =i,i=i+1;
    5.当自增单做一个表达式使用时 j= ++i;等价于j = i+1;

关系运算符

基本介绍
关系运算符都是double类型,也就是true或者fales
关系表达式,用在if语句和循环语句比较多

关系运算符表格

微信截图_20221101114919.png

细节说明

  1. 关系运算符的结果都是boolean类型,也就是要么是true,要么是false。
  2. 关系运算符组成的表达式,我们称为关系表达式。
  3. 比较运算符"==" 不能写成"="。

逻辑运算符

基本介绍
用于连接个关系表达式,最终的结果也是boolea。

逻辑运算符表格
短路与&&,短路或||,取反!
逻辑与&,逻辑或|,逻辑异或^

微信截图_20221101125658.png

逻辑运算符的规则

  1. a&b,叫逻辑与,当a和b同时为true,结果为true,否则为false。
  2. a&&b,叫短路与,当a和b同时为true,结果为true,否则为false。
  3. a|b,叫逻辑或,当a和b有一个为true,结果为true,否则为false。
  4. a||b,叫短路或,当a和b有一个为true,结果为true,否则为false。
  5. !a,叫取反,当a为true,结果为false,当a为false,结果为true。
  6. a^b,叫逻辑异或,当a和b不同时,结果为true,否则为false。

短路与和逻辑与的区别
&&短路与:如果第一个条件为false,那么第二个条件不会判断(不会执行),因为结果都是false,效率高。
&逻辑与:不管第一个条件是true还是fslse,第二个条件都会判断(会执行),效率低

短路或和逻辑或的区别 ||短路或:如果第一个条件为true,那么第二个条件不会判断(不会执行),因为结果都是true,效率高。
|逻辑或:不管第一个条件是true还是fslse,第二个条件都会判断(会执行),效率低

赋值运算符

基本介绍
赋值运算符就是见某个技术出来的值,赋给指定的变量。

赋值运算符的分类
1.基本赋值运算符 = 。
2.符合运算符: += , -= , /= , %= 等。

赋值运算符的特点

//1.从右往左运算。 
int c = a+b。
//2.赋值运算符的左边只能是变量,右边可以是变量,表达式,常量值。
int a = 10;
int b = 12 +32;
int c = a;
/*3.复合运算符等价于下面运算
    例如:
    a += b等价于 a = a+b;
*/
//4.复合赋值运算符会进行类型转换。

三元运算符

语法
条件表达式?表达式1:表达式2。

运算规则

  1. 如果条件表达式为true,则输出表达式1。
  2. 如果条件表达式为false,则输出表达式2。
//例如:
int i = 10;
int j = 11;
/*
  1.i>j为false
  2.返回表达式2 ,j++,++在后,先赋值,在++。
  3.返回的结果是11
*/
int result = i>j ? i++ : j++;
System.out.println(result);
System.out.println(result);
System.out.println(result);

使用细节
1.表达式1和表达式2要为可以赋给接受变量的类型(或可以自动转换)。

//例如:
int a = 10;
int b = 20;
int c = a>b ? (int)2.3 : (int)4.5;//可以
double d = a>b ? a : b+1;//可以

运算符的优先级

  1. 运算符有不同的优先级,优先级就是在计算的时候的运算顺序。
  2. 只有单目运算符和赋值运算符从右到左运算。
  3. 如下表是运算优先级表,上一行运算符总优先于下一行。

微信截图_20221103114345.png