Java循环代码异常求助:洗发程序输出与预期不符
解决Shampoo循环输出的问题
嘿,我瞅了下你的代码,几个小细节没处理好才导致输出不符合预期,我帮你捋清楚:
问题点拆解
- 多余的加号与文本错误:
System.out.print(+ i)里的+完全没必要,虽然Java语法允许,但看着别扭;而且你循环里输出的是: Lather and ...,不是你想要的: Lather and Rinse。 - 缺失"Done"输出逻辑:原代码里根本没写输出"Done"的代码,自然不会显示这行内容。
- 循环后收尾步骤遗漏:你需要等所有循环的步骤都输出完,再统一打印"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
相关产品推荐
相关产品推荐

