报价菜单循环版

② 的核心机制全对:外层 do-while(面积层)+ 内层 while(档次层),"0-返回上一步"跳出内层回面积、"报完价 break"回外层顶部——"返回菜单"的循环语义。没用 Ctrl+C 结束思维,完整走通了 菜单→功能→回菜单 的闭环。

/**
复制代码
* ②报价菜单循环版:菜单→进入功能→返回菜单 * <p> * 注意: * 1、switch-case语句 * 2、边界判断 * 3、退出机制 * 4、常量 * 5、数组 * */ import java.util.Scanner; public class Day13QuoteMenu { public static final String[] MENU = {"1 - 经济型装修", "2 - 舒适型装修", "3 - 豪华型装修", "0 - 退出"}; public static final double LEVEL_PRICE_ECONOMY = 800d; public static final double LEVEL_PRICE_COMFORT = 1200d; public static final double LEVEL_PRICE_LUXURY = 1800d; public static void main(String[] args) { Scanner in = new Scanner(System.in); do { System.out.println("----------报价菜单循环版----------"); for (String menu : MENU) { System.out.println(menu); } System.out.print("请输入房屋面积(m²)【0-退出】:"); double houseAreaIn = in.nextDouble(); if (houseAreaIn < 0) { System.out.println("请输入有效的房屋面积!"); continue; }else { if (houseAreaIn == 0) { System.out.println("您选择的是:" + MENU[MENU.length-1]); break; } while(true) { System.out.print("请选择装修档次(1经济|2舒适|3豪华)的数字【0-返回上一步】:"); int renovationLevelIn = in.nextInt(); if (renovationLevelIn == 0) { break; }else { if (renovationLevelIn >= 1 && renovationLevelIn <= 3) { double renovationUnitPrice = switch (renovationLevelIn) { case 1 -> LEVEL_PRICE_ECONOMY; case 2 -> LEVEL_PRICE_COMFORT; case 3 -> LEVEL_PRICE_LUXURY; default -> 0.0; }; System.out.printf("您选择的装修档次是:%s%n", MENU[renovationLevelIn-1]); System.out.printf("装修总价是:%,.2f 元,其中房屋面积是:%,.2f m²,装修单价是:%,.2f 元%n",(renovationUnitPrice * houseAreaIn),houseAreaIn,renovationUnitPrice); break; } } } } }while(true); } }
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP