运算符

运算符的介绍

1. 算术运算符

image

  1. +,-,*./,%,++,--,重点讲解%、++

  2. 自增:++
    作为独立的语句使用:
    前++和后++都完全等价于i=i+1;作为表达式使用
    前++∶++i先自增后赋值后++;i++先赋值后自增

  3. --, +、-、*是一个道理,完全可以类推。

  • 对于除号"/",它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如:int x= 10/3,结果是3
    当对一个数取模时,可以等价a%b=a-a/b*b,这样我们可以看到取模的一
    个本质运算。
    当自增当做一个独立语言使用时,不管是++i;还是 i++;都是一样的,等价
  • 当自增当做一个表达式使用时j=++i等价[?] i=i+1; j+i;
    当自增当做一个表达式使用时j=i++等价[?] j=i; i=i+1;

2. 关系运算符 [比较运算符]

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

  2. 关系表达式 经常用在 if 结构的条件中或循环结构的条件中

image

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

3.逻辑运算符

用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean 值。

image

说明逻辑运算规则:

  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
  7. && 和 & 基本规则

名称 语法 特点

短路与&& 条件 1&&条件 2 两个条件都为 true,结果为 true,否则 false

逻辑与& 条件 1&条件 2 两个条件都为 true,结果为 true,否则 false

&&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高

& 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低 开发中, 我们使用的基本是使用短路与&&, 效率高

名称 语法 特点

短路或|| 条件 1||条件2 两个条件中只要有一个成立,结果为 true,否则为false

|逻辑或 条件 1|条件 2 只要有一个条件成立,结果为 true,否则为 false

||短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高

| 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低

! 非(取反) !条件 如果条件本身成立,结果为 false,否则为 true

3. 赋值运算符

赋值运算符就是将某个运算后的值,赋给指定的变量。

赋值运算符的分类 = 基本赋值运算符 = int a = 10;

复合赋值运算符 += ,-= ,*= , /= ,%= 等 , 重点讲解一个 += ,其它的使用是一个道理 a += b; [等价 a = a + b; ] a -= b; [等价 a = a - b; ]

  • 运算顺序从右往左 int num = a + b + c;
  • 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值 int num = 20; int num2= 78 * 34 - 10; int num3 = a;
  • 复合赋值运算符等价于下面的效果 比如:a+=3;等价于 a=a+3; 其他类推
  • 复合赋值运算符会进行类型转换。 byte b = 2; b+=3; b++;

4. 三元运算符

条件表达式 ? 表达式 1: 表达式 2;

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

  1. 如果条件表达式为 false,运算后的结果是表达式 2;
  2. 口诀: [一灯大师:一真大师]

表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换)

三元运算符可以转成 if--else 语句

int res = a > b ? a++ : --b;

if ( a > b) res = a++; else res = --b;

5. 运算符优先级

image

标识符的命名规则和规范

image

包名:多单词组成时所有字母都小写:aaa.bbb.ccc //比如 com.abc.com

类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰] 比如: TankShotGame

变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz[小驼峰, 简称 驼峰法] 比如: tankShotGame

常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ 比如 :定义一个所得税率 TAX_RATE

导入该类的所在包, java.util.*
输入语句
Scanner scanner = new Scanner(System.in);
String a = scanner.next();

原码反码补码

image

算术右移 >>:低位溢出,符号位不变,并用符号位补溢出的高位

算术左移 <<: 符号位不变,低位补 0

 >>> 逻辑右移也叫无符号右移,运算规则是: 低位溢出,高位补 0 
 特别说明:没有 <<< 符号 
  应用案例 
     1) int a=1>>2; //1 => 00000001 => 00000000 本质 1 / 2 / 2 =0 2) int c=1<<2; //1 => 00000001 => 00000100 本质 1 * 2 * 2 = 4
posted @ 2024-01-14 17:30  十里-  阅读(25)  评论(0)    收藏  举报