Java循环逻辑修改需求:输入产品编号为-1时直接终止循环
解决输入产品编号为-1时直接终止循环的问题
嘿,我明白你的需求了——你希望用户输入产品编号为-1时立刻跳出循环计算总计,而不是得同时把数量也输成-1才终止。我帮你调整了代码,同时补全了原本缺失的核心逻辑,让它能正常运行并满足你的要求:
import java.util.Scanner; public class Structuredcontrols { public static void main(String[] args) { Scanner input = new Scanner(System.in); double total = 0; // 用单个变量存储总计更简洁 int productNumber; int quantity; while (true) { // 改用无限循环,方便灵活控制终止时机 System.out.print("Enter product number (-1 to exit): "); productNumber = input.nextInt(); // 核心改动:输入产品编号为-1时直接跳出循环 if (productNumber == -1) { break; } // 输入对应产品的数量 System.out.print("Enter quantity: "); quantity = input.nextInt(); // 这里示例用switch匹配不同产品编号的单价,你可以根据实际需求修改 double price; switch (productNumber) { case 1: price = 10.99; break; case 2: price = 15.99; break; case 3: price = 20.99; break; default: System.out.println("Invalid product number, skipping this entry."); continue; // 无效编号跳过当前循环,不参与总计计算 } // 累加当前产品的金额到总计 total += price * quantity; } // 循环终止后输出最终总计 System.out.printf("Total amount: $%.2f%n", total); input.close(); } }
关键改动说明:
- 调整循环结构:把原本依赖
number变量的循环改成while(true)无限循环,这样我们可以在用户输入产品编号后立刻判断是否终止,不需要等数量输入完成 - 提前终止检查:在读取产品编号后直接判断
if (productNumber == -1),满足条件就用break跳出循环,直接进入总计计算环节 - 补全业务逻辑:添加了单价匹配、数量输入和总计累加的代码(你可以根据实际业务调整单价的获取方式,比如从数组、集合或数据库读取)
- 完善收尾操作:添加了关闭Scanner资源和格式化输出总计的代码
原来的代码结构会导致必须完成数量输入后才会检查循环终止条件,现在的改动完美解决了这个问题,完全符合你“输入产品编号为-1直接跳出循环”的需求。
内容的提问来源于stack exchange,提问作者Learning
相关产品推荐
相关产品推荐

