You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java薪资计算器开发:如何在if-else if语句内嵌套if语句

薪资计算器实现方案

需求梳理

  • 未满18周岁的申请人无加班费,且所在州规定未成年人最高工作时长为18小时,超出部分不计薪
  • 年满18周岁的申请人,工作满40小时以上的部分按1.5倍薪资计发加班费,40小时及以内按正常薪资核算

现有代码问题梳理

  1. 未成年人判断逻辑错误:if(17 > age)仅判断了年龄小于17岁的场景,未覆盖17岁未满18岁的群体,应改为age < 18
  2. 缺少未成年人工作时长超出18小时的校验处理,不符合当地用工规定
  3. 成年人分支逻辑冗余:外层已经判断totalHours > 40,内层重复判断相同条件无意义
  4. 逻辑分支覆盖不全:缺少年满18周岁且工作时长≤40小时的处理分支,该场景下变量未赋值会导致编译报错
  5. 语法错误:输出语句存在字符串拼接格式错误,多余的加号、换行符位置不对
  6. 姓名读取逻辑有瑕疵:读取名字后未对姓氏内容做去空格处理,可能出现多余的前置空格

修正后完整代码

import java.util.Scanner;
public class SalaryV2
{
    public static void main(String[] args)
    {
        // 声明初始化变量
        double totalSalary;
        boolean isOvertime;
        Scanner in = new Scanner(System.in);

        // 输入部分
        System.out.print("请输入您的姓名(名 姓):");
        String firstName = in.next();
        String lastName = in.nextLine().trim();

        System.out.print("请输入您的年龄:");
        double age = Double.parseDouble(in.nextLine());

        System.out.print("\n请输入您的小时薪资:");
        double payRate = Double.parseDouble(in.nextLine());

        System.out.print("\n请输入您的工作时长:");
        double totalHours = Double.parseDouble(in.nextLine());
        System.out.println();

        // 业务逻辑处理
        if(age < 18) {
            isOvertime = false;
            // 未成年人最高工作时长校验
            if(totalHours > 18) {
                System.out.println("提示:根据规定未成年人最高工作时长为18小时,超出部分不计薪");
                totalHours = 18;
            }
            totalSalary = totalHours * payRate;
        } else {
            if(totalHours > 40) {
                isOvertime = true;
                totalSalary = 40 * payRate + (totalHours - 40) * payRate * 1.5;
            } else {
                isOvertime = false;
                totalSalary = totalHours * payRate;
            }
        }

        // 输出部分
        System.out.print("员工姓名:" + lastName + "," + firstName + "\n");
        System.out.print("工作时长:" + totalHours);
        System.out.println("\t\t是否加班:" + isOvertime);
        System.out.println("总薪资:" + totalSalary);
        in.close();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:45:03