Java字符串反转程序输出结果与预期不符问题求助
核心错误原因
- 终止条件不匹配需求:需求要求输入
Done、done、d时程序终止,你代码中判断的是输入quit、Quit、q才终止,两者完全不匹配。你输入done时没有触发退出逻辑,反而进入了字符串反转流程,因此多输出了反转后的enod。 - 如果你本次预期仅输出
ereht olleH,请确认你的输入顺序是否符合预期:如果你输入Hello there后就想终止,需要输入当前代码能识别的终止词quit/Quit/q,否则会继续处理后续输入的Hey等内容。
修复代码
只需修改if分支的判断条件即可适配需求:
import java.util.Scanner; public class LabProgram { public static void main(String[] args) { Scanner scnr = new Scanner(System.in); String str; while (true) { str = scnr.nextLine(); // 替换为需求要求的终止判断条件 if (str.equals("Done") || str.equals("done") || str.equals("d")) break; for (int i = 0; i < str.length(); i++) { System.out.print(str.charAt(str.length() - i - 1)); } System.out.println(); } } }
修改后运行测试用例(输入Hello there、Hey、done),输出结果和官方示例完全一致。
内容的提问来源于stack exchange,提问作者Austin Belford
相关产品推荐
相关产品推荐

