今天的工作中,遇到一个问题,是充值金额没有负数校验。以下是几种在 Java 中添加充值金额为负数判断的常见情况示例,具体取决于应用场景是在网页开发、桌面应用等不同环境下。
一、方法参数验证场景(以一个简单的充值方法为例)
假设你有一个类,其中有个方法用于处理充值业务,方法接收充值金额作为参数,代码可能如下:
public class RechargeService { public void recharge(double amount) { if (amount < 0) { System.out.println("充值金额不能为负数,请重新输入正确的金额"); return; // 直接结束方法执行,不进行后续充值逻辑 } // 这里可以编写真正的充值逻辑,比如调用数据库操作等 System.out.println("正在充值 " + amount + " 元,充值成功!"); } }
你可以这样调用这个方法来测试:
public class Main { public static void main(String[] args) { RechargeService rechargeService = new RechargeService(); rechargeService.recharge(100.0); // 正常充值金额 rechargeService.recharge(-50.0); // 负数充值金额,会触发错误提示 } }
在上述代码中:
在 recharge 方法内,通过 if (amount < 0) 语句来判断传入的充值金额参数 amount 是否是负数。
如果是负数,就输出提示信息告知用户金额不能为负,并且使用 return 语句直接终止该方法后续逻辑的执行,避免执行错误的充值操作。
如果金额大于等于 0,就可以继续执行后续真正的充值逻辑,这里只是简单打印了充值成功的提示,实际应用中可能会涉及数据库更新用户余额等复杂操作。
二、从用户输入获取充值金额并验证(结合 Scanner 获取控制台输入为例)
如果是从用户在控制台输入充值金额,然后进行验证,可以这样写:
import java.util.Scanner; public class RechargeInputValidation { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入充值金额:"); double amount = scanner.nextDouble(); if (amount < 0) { System.out.println("充值金额不能为负数,请重新输入正确的金额"); // 可以在这里添加逻辑让用户重新输入,比如循环获取输入直到输入合法金额等 return; } System.out.println("充值 " + amount + " 元成功!"); } }
这段代码的执行逻辑如下:
首先创建了一个 Scanner 对象用于获取用户在控制台的输入。
提示用户输入充值金额后,通过 nextDouble 方法获取用户输入的数值并存储到 amount 变量中。
接着使用 if 语句判断该金额是否为负数,若是负数,则给出相应提示并结束程序(这里也可以改进为循环让用户重新输入正确金额等更完善的逻辑),若不是负数,就执行后续正常的充值业务逻辑,比如将充值记录更新到数据库、调整用户账户余额等相关操作(这里只是简单打印了充值成功的提示)。