04-基础语法3

进制


运算符

算数运算符

  • 算术运算符中 +,-,*,/,% 属于二元运算符 // 二元运算符指的是需要 2 个操作数才能完成运算的运算符
    • 如果是整数相除,结果也只能得到整数;如果想得到小数,必须把数据先变化为浮点数类型再运算
    • 其中的 % 是取模运算符,就是我们常说的求余数操作,得到的结果是"余数"
      • 其操作数可以为浮点数,一般使用整数,结果是 "余数"
      • "余数"符号和左边操作数相同。如:7%3=1;-7%3=-1;7%-3=1
  • 算术运算符中 ++,-- 属于一元运算符,该类运算符只需要 1 个操作数

赋值及其扩展赋值运算符

  • 基本的赋值运算符:=
    • = 两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理
    • 支持连续赋值;如:i = j = 1101
  • 扩展的赋值运算符
  • 测试

关系运算符

  • = 是赋值运算符,而判断两个操作数是否相等的运算符是 ==

  • ==!= 是所有(基本和引用) 数据类型都可以使用

  • >>=<<= 仅针对数值类型 (byte/short/int/long,float/double,char)

逻辑运算符

  • 逻辑运算符用于连接 {布尔型表达式},不可以写成 3 < x < 6,应该写成 x > 3 && x < 6
  • 短路与&&短路或|| 采用短路的方式:从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率
  • 异或 ^或 | 不同!
    • ^左右都为true时,结果为false
    • 异或^,追求的是""
  • 一道小题

位运算符

  • 详解
  • 练习1
  • 练习2:异或运算实现两个整数变量的交换 // 一个数据对另一个数据异或两次,数据本身不变
    • a = a ^ b;
    • b = a ^ b;
    • a = a ^ b;
  • 练习3:求一个0~255范围内的整数的十六进制 // 无符号右移

字符串连接符

  • + 除了用于算术加法运算外,还可用于对字符串进行连接操作
  • + 运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接

三元运算符

  • 语法

    • 表达式1 和 表达式2 为同种数据类型(就算不是,也得能自动转型成同一种类型才行)
  • 三元运算符 与 if-else 的联系与区别

    • 三元运算符可简化 简单的if-else 语句
    • 但凡能用三目运算符的地方都可用 if-else 语句来替代
    • 三元运算符要求必须返回一个结果
    • if-else 代码块中可有多条语句
  • 练习

    • 求2个数最大值:m > n ? m : n
    • 求3个数最大值:x>y ? x>z?x:z : y>z?y:z

运算符优先级问题

  • 不需要去刻意的记这些优先级;表达式里面想优先运算的,加小括号
  • 逻辑非 > 逻辑与 > 逻辑或;如:a || b && c 的结果是 a || (b && c),而不是 (a || b) && c

键盘录入

  • 导包:import java.util.Scanner;
  • Scanner实例化:Scanner sc = new Scanner(System.in);
  • 调用Scanner类相关方法 // 没有nextChar()哈!
    • boolean nextBoolean()
    • byte nextByte()
    • short nextShort()
    • int nextInt()
    • long nextLong()
    • float nextFloat()
    • double nextDouble()
    • String next()
    • String nextLine()
  • next()nextLine() 一前一后执行

获取[a,b]内的一个随机数

  • 公式:(int) (Math.random() * (b-a+1) + a)
  • 举例:获取 [10,99] 内的随机数
    • Math.random() → [0.0,1.0)
    • Math.random() * 90 → [0.0,90)
    • Math.random() * 90 + 10 → [10.0,100)
    • (int) (Math.random() * 90 + 10) → [10,99]

猜你喜欢

转载自www.cnblogs.com/liujiaqi1101/p/12793331.html