You need to enable JavaScript to run this app. Java抵押贷款计算代码报BLANK token expected语法错误 求解
优惠活动
大模型
产品
解决方案
定价
更多

Java抵押贷款计算代码报BLANK token expected语法错误 求解

抵押贷款Java程序语法错误修复

运行时触发Syntax error on token BLANK while expected报错,本质是代码结构不符合Java语法规范,具体问题和修改方案如下:

核心问题定位

  • 分支逻辑未加代码块:Java中if/else分支如果要执行多行代码,必须用{}包裹对应逻辑段。原代码分支未加大括号,语法解析器会把分支后的return mortgage识别为独立代码,碰到后续的else关键字时无法匹配上下文,直接报空token语法错。
  • else语法使用错误:原代码写为else (salaryTwo > salaryOne),Java语法中else是无判断条件的默认分支,要在else链路中追加判断必须写else if,直接在else后接条件括号属于完全非法的语法结构。
  • 边界场景缺失:原代码仅判断了薪资1大于薪资2、薪资2大于薪资1的场景,漏了两者相等的情况,会导致方法走到分支尽头时没有可返回的数值,触发编译报错。
  • 提示语小笔误:用户输入提示里的person 2'a salary存在所有格拼写错误,修正为person 2's salary。

修改后可直接运行的完整代码

import java.util.Scanner;
class calculateMortgageA {
    public static void main (String[]args) {
        // 初始化输入读取器
        Scanner input = new Scanner(System.in);

        // 读取两位用户的薪资输入
        System.out.println("Enter person 1's salary:");
        double salaryOne = input.nextDouble();

        System.out.println("Enter person 2's salary:");
        double salaryTwo = input.nextDouble();

        // 计算并输出可贷额度
        System.out.print("The mortgage will be £" + calcmortgage(salaryOne, salaryTwo));

        input.close();
    }

    public static double calcmortgage (double salaryOne, double salaryTwo) {
        double mortgage;
        if (salaryOne > salaryTwo) {
            mortgage = 3 * salaryOne + salaryTwo;
        } else if (salaryTwo > salaryOne) {
            mortgage = 3 * salaryTwo + salaryOne;
        } else {
            // 兼容两人薪资相等的边界场景
            mortgage = 4 * salaryOne;
        }
        return mortgage;
    }
}

内容的提问来源于stack exchange,提问作者user15108028

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.06 00:06:03