04-基础语法3
1. 进制#
2. 运算符#
2.1 算数运算符#
2.2 赋值及其扩展赋值运算符#
2.3 关系运算符#
=
是赋值运算符,而判断两个操作数是否相等的运算符是==
==
、!=
是所有(基本和引用) 数据类型都可以使用>
、>=
、<
、<=
仅针对数值类型 (byte/short/int/long,float/double,char)
2.4 逻辑运算符#
- 逻辑运算符用于连接 {布尔型表达式},不可以写成
3 < x < 6
,应该写成x > 3 && x < 6
短路与&&
和短路或||
采用短路的方式:从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率
异或 ^
与或 |
不同!^
左右都为true
时,结果为false
异或^
,追求的是"异"
- 一道小题
2.5 位运算符#
- 详解
- 练习 1
- 练习 2:异或运算实现两个整数变量的交换 // 一个数据对另一个数据异或两次,数据本身不变
- a = a ^ b;
- b = a ^ b;
- a = a ^ b;
- 练习 3:求一个 0~255 范围内的整数的十六进制 // 无符号右移
2.6 字符串连接符#
+
除了用于算术加法运算外,还可用于对字符串进行连接操作+
运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接
2.7 三元运算符#
- 语法
- 表达式 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
- 求 2 个数最大值:
3. 运算符优先级问题#
- 不需要去刻意的记这些优先级;表达式里面想优先运算的,加小括号
- 逻辑非 > 逻辑与 > 逻辑或;如:
a || b && c
的结果是a || (b && c)
,而不是(a || b) && c
4. Scanner 键盘录入#
- 导包:
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()
一前一后执行
5. 获取[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]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?