1. 核心实战:房贷计算器进阶
输入与校验逻辑 (Scanner & Validation)
使用 Scanner 接收用户输入,并配合 if 语句进行有效性判断(卫语句风格)。
- 输入工具:Java
Scanner scanner = new Scanner(System.in); // 技巧:记不住类型可以用 var scanner = new Scanner(System.in); - 校验逻辑 (Guard Clauses):
- 本金校验:
if(p <= 0)$\rightarrow$ 提示 “贷款金额必须 > 0″。- 逻辑: 先比较再取反(推荐直接写
p <= 0而不是!(p > 0))。
- 逻辑: 先比较再取反(推荐直接写
- 利率校验:
if(yr < 1.0 || yr > 36.0)$\rightarrow$ 提示 “年利率必须是 1~36″。 - 月份校验:
if(m < 1 || m > 360)$\rightarrow$ 提示 “贷款月数必须是 1~360″。
- 本金校验:
数学计算 (Math Logic)
- 月利率:
double mr = yr / 12.0 / 100; - 幂运算:
double pow = Math.pow(1 + mr, m); - 月供公式:
double payment = p * mr * pow / (pow - 1);
循环拆解 (The Loop)
计算每月的本金与利息详情,关键在于更新剩余本金。
Java
for (int i = 0; i < m; i++) {
double payInterest = p * mr; // 1. 偿还利息
double payPrincipal = payment - payInterest; // 2. 偿还本金
p -= payPrincipal; // 3. 更新剩余本金 (核心)
// 打印每月详情 (i+1 表示月份)
// ...使用 NumberFormat 格式化输出
}
格式化输出 (Formatting)
使用核心类库 NumberFormat 处理货币显示(自动添加 ¥ 和千分位)。
- 代码:
NumberFormat.getCurrencyInstance(Locale.CHINA).format(变量) - 应用: 用于本金、利息、总还款额的显示。
2. 方法入门 (Methods)
定义与概念
把方法想象成**“被折叠的代码”**,调用时才会展开。
- 语法:Java
static int add(int a, int b) { // "int a, int b" 是形参 int c = a + b; return c; }
调用方式
- 本类调用:
int d = add(100, 200);(不用写类名) - 跨类调用:
TestMethod.add(100, 200); - 实参: 调用时传入的实际数值 (如
100,200)。
3. IDE 效率快捷键 (IntelliJ IDEA)
根据代码注释整理的高频快捷键:
- 代码补全:
Ctrl + Shift + Enter(补全当前语句,如分号、括号)。 - 类搜索:
Ctrl + N(查找核心类库,如 Scanner)。 - 自动导包/修复:
Alt + Enter(引入局部变量、生成变量定义、取反逻辑)。 - 复制行:
Ctrl + D(快速复制当前行代码)。