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

Java循环代码异常求助:洗发程序输出与预期不符

解决Shampoo循环输出的问题

嘿,我瞅了下你的代码,几个小细节没处理好才导致输出不符合预期,我帮你捋清楚:

问题点拆解

  1. 多余的加号与文本错误:System.out.print(+ i)里的+完全没必要,虽然Java语法允许,但看着别扭;而且你循环里输出的是: Lather and ...,不是你想要的: Lather and Rinse。
  2. 缺失"Done"输出逻辑:原代码里根本没写输出"Done"的代码,自然不会显示这行内容。
  3. 循环后收尾步骤遗漏:你需要等所有循环的步骤都输出完,再统一打印"Done",而不是混在循环里。

修正后的完整代码

import java.util.Scanner;

public class ShampooMethod {
    public static void printShampooInstructions(int numCycles) {
        if (numCycles < 1) {
            System.out.println("Too few.");
            return;
        } else if (numCycles > 4) {
            System.out.println("Too many.");
            return;
        } else {
            // 循环输出每一轮的洗发步骤
            for (int i = 1; i <= numCycles; i++) {
                System.out.println(i + ": Lather and Rinse");
            }
            // 所有循环完成后输出收尾文本
            System.out.println("Done");
        }
    }

    // 加个main方法方便直接测试
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入循环次数:");
        int cycles = scanner.nextInt();
        printShampooInstructions(cycles);
        scanner.close();
    }
}

改动说明

  • 把分散的print和println合并成一行,直接拼接数字和字符串,既简洁又避免输出混乱,同时修正了文本内容。
  • 在循环结束后单独添加System.out.println("Done"),确保所有洗发步骤输出完才显示收尾信息。
  • 补充了main方法,你可以直接运行代码,输入不同的循环次数测试效果(比如输入2,就会输出两行步骤+Done)。

举个测试例子,输入2时的输出:

1: Lather and Rinse
2: Lather and Rinse
Done

这样就完全符合你的预期啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:47:44