You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java餐厅点餐程序无输出问题求助:需更新循环变量

餐厅点餐程序无输出问题排查与修复

嘿,我来帮你搞定这个问题!你的程序没输出还收到「需在循环中更新变量」的提示,核心是代码执行顺序颠倒+循环变量未更新+运算符误用这几个点,咱们逐个拆解:

问题1:程序卡在输入等待,根本没到打印菜单的步骤

你现在的代码在进入do-while循环之前,就先执行了两次c.next()读取输入:

char choice = c.next().charAt(0);
char c_choice = c.next().charAt(0);

程序运行到这里会直接阻塞,等待你输入两次内容,但你可能以为程序会先显示菜单再让你选,所以一直等着程序输出,程序却在等你输入——这就是「无任何输出」的直接原因!

问题2:循环中未更新判断变量,违反提示要求

你的do-while循环判断条件依赖choice变量,但循环体里完全没有重新读取用户的新输入来更新choice。就算侥幸进入循环,也会因为choice值不变,要么无限循环要么直接跳出,完全不符合交互式点餐的逻辑。

问题3:逻辑判断运算符误用

你用了按位或运算符|来判断choice < '1' | choice > '6',这里应该用逻辑或运算符||,虽然某些情况下结果可能一样,但逻辑或会短路求值,更符合业务逻辑的写法。


修正后的核心代码片段

把输入读取放到循环体内部,确保先显示菜单再获取用户选择,同时更新循环变量:

Scanner c = new Scanner(System.in);
char choice; // 先声明,不提前初始化
do {
    // 先打印菜单(这才是正确的顺序!)
    System.out.println("Welcome to Dripp!");
    System.out.println("Please choose from one of our signature creations or create your own!");
    System.out.println("1. Oreo Overload $6.99");
    System.out.println("2. Birthday Cake Remix $6.99");
    System.out.println("3. Chocolate Devotion $6.99");
    System.out.println("4. Strawberry Blonde $6.99");
    System.out.println("5. Founders Favorite $6.99");
    System.out.println("6. Create Your Own!");
    
    // 在循环内读取用户选择,更新判断变量
    choice = c.next().charAt(0);
    
    // 可选:如果输入不符合要求,提示用户
    if (choice < '1' || choice > '6') {
        System.out.println("Invalid choice! Please enter a number between 1-6.");
    }
} while (choice < '1' || choice > '6'); // 用逻辑或||

// 接下来执行switch逻辑
System.out.println();
switch (choice) {
    case '1':
        System.out.println("Ingredients: Sweet Cream Ice Cream with Chocolate Chips, double the OREO® Cookies and Fudge");
        // 别忘了加break和其他case的逻辑
        break;
    // 补充其他case...
}

// 最后记得关闭Scanner
c.close();

额外提示

  • 你提前声明的c_choice变量目前没用到,应该放到嵌套switch(自定义餐品)的逻辑里再读取,不要提前读取导致额外的输入阻塞。
  • switch的每个case都要加break,避免贯穿执行。

内容的提问来源于stack exchange,提问作者umerdino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 17:42:28