作用域越小越好

输入校验 → 循环交互 → 条件分支 → 格式化输出

/**
复制代码
* 报价计算器加档次逻辑:经济800/舒适1200/豪华1800元每㎡,用if求出单价和总价 * <p> * 注意: * 1、main方法是static,只能调用static属性 * 2、if...else语句 * 3、Scanner的使用 * 4、边界判断 * 5、while循环及嵌套 * 6、final常量 * */ import java.util.Scanner; public class Day9RenovationQuoteCalculator { public static final double LEVEL_PRICE_ECONOMY = 800; public static final double LEVEL_PRICE_COMFORT = 1200; public static final double LEVEL_PRICE_LUXURY = 1800; public static void main(String[] args) { Scanner in = new Scanner(System.in); while (true) { System.out.println("----------------装修单价和总价计算----------------"); System.out.print("请输入房屋的面积(m²)【0-退出】:"); double houseArea = in.nextDouble(); if (houseArea == 0) { break; } if (houseArea < 0) { System.out.println("不能输入负数!"); continue; } else { while (true) { System.out.print("请选择装修档次(1经济/2舒适/3豪华)的数字【0-返回上一步】:"); int renovationLevel = in.nextInt(); if (renovationLevel == 0) { break; } if (renovationLevel > 3 || renovationLevel < 0) { System.out.println("只能输入( 1 | 2 | 3 )【0-返回上一步】!"); continue; } double renovationUnitPrice = switch (renovationLevel) { case 1 -> LEVEL_PRICE_ECONOMY; case 2 -> LEVEL_PRICE_COMFORT; case 3 -> LEVEL_PRICE_LUXURY; default -> 0.0; }; double renovationTotalPrice = houseArea * renovationUnitPrice; System.out.println("------------------------------------------------"); System.out.printf("您的装修单价是:%.2f 元/m²,装修总价是: %,.2f 元 %n%n%n", renovationUnitPrice, renovationTotalPrice); break; } } } } }
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
鱼友0258
下载 APP