如何用Java循环实现9次输入不同信息生成停车罚单
实现9次停车罚单生成的Java代码方案
嗨,我来帮你搞定这个循环的问题!既然需要固定生成9次停车罚单,用for循环是最直接的选择——毕竟我们明确知道循环次数,用它比while循环更简洁直观。我会基于你给出的代码片段完善出完整可运行的版本:
package week3; import java.util.Scanner; public class Week3 { static final double costPerHour = 4.25; public static void main(String[] args) { // 初始化Scanner用于获取用户输入 Scanner scanner = new Scanner(System.in); // 使用for循环执行9次罚单生成逻辑 for (int i = 0; i < 9; i++) { System.out.println("\n=== 第 " + (i + 1) + " 张停车罚单录入 ==="); // 输入客户姓名 System.out.print("请输入客户姓名: "); String customerName = scanner.nextLine(); // 输入车牌号 System.out.print("请输入车牌号: "); String customerNumberPlate = scanner.nextLine(); // 输入停车时长(小时) System.out.print("请输入停车时长(小时): "); int hours = scanner.nextInt(); // 处理nextInt()后遗留的换行符,避免下一次nextLine()读取空内容 scanner.nextLine(); // 计算总停车费用 double totalCost = hours * costPerHour; // 输出停车罚单信息 System.out.println("\n--- 停车罚单 ---"); System.out.println("客户姓名: " + customerName); System.out.println("车牌号: " + customerNumberPlate); System.out.println("停车时长: " + hours + " 小时"); System.out.printf("总费用: $%.2f\n", totalCost); } // 关闭Scanner资源 scanner.close(); } }
关键细节说明:
- for循环的选择:因为我们需要固定执行9次,
for (int i = 0; i < 9; i++)刚好会循环9次(i从0到8),比while循环更贴合这种已知次数的场景。 - 输入处理注意点:使用
nextInt()读取停车时长后,一定要调用scanner.nextLine()清除输入缓冲区里的换行符,否则下一次调用nextLine()会直接读取到空字符串,导致输入异常。 - 格式化输出费用:用
printf("总费用: $%.2f\n", totalCost)把费用格式化为两位小数,符合货币显示的常规要求。 - 每次循环的独立性:所有输入变量(姓名、车牌号、时长)都在循环内部处理,每次循环都会重新获取新的用户输入,保证每张罚单的信息都是独立的。
内容的提问来源于stack exchange,提问作者E.Allen
相关产品推荐
相关产品推荐

