如何修复包含用户输入与递归逻辑的存在语法错误的Java代码
Java递归计数程序修复方案
存在的错误汇总
- 代码中混入了非Java语法的文本内容(如“强调文本”“粗体文本”等标注内容),会直接导致编译失败
Scanner对象tuwa1是main方法的局部变量,被错误放到了callMyself递归方法中调用,超出了变量作用域- 扫描输入方法拼写错误:
nexInt()应为nextInt() System.out.println()语句末尾缺失Java语句必须的结束分号- 递归方法
callMyself的大括号闭合逻辑错误,和main方法、类的边界混淆 - 原有逻辑没有将用户输入的数值传递给递归方法,写死了传入10,不符合功能需求
- 没有关闭Scanner对象,存在资源泄漏隐患
修复后完整可运行代码
package state; import java.util.Scanner; public class State { public static void main(String[] args) { Scanner tuwa1 = new Scanner(System.in); System.out.println("Enter Number"); // 读取用户输入的整数 int number1 = tuwa1.nextInt(); // 调用递归方法执行计数 callMyself(number1); // 关闭扫描器释放资源 tuwa1.close(); System.out.println(); } /* Java递归倒序计数方法 */ public static void callMyself(long i) { if (i < 0) { return; } System.out.print(i + " "); i = i - 1; callMyself(i); } }
功能说明
运行程序后会提示用户输入一个整数,输入后程序会从该整数开始倒序计数到0,每个数字之间用空格分隔。
内容的提问来源于stack exchange,提问作者Tuwa
相关产品推荐
相关产品推荐

