【问题标题】:Finding even numbers using a recursive method使用递归方法查找偶数
【发布时间】:2014-04-11 09:46:40
【问题描述】:

我试图让下面列出的代码接收来自用户的 int 输入,然后在该 int 中找到偶数的数量。当我尝试打印退货时出现错误...有什么帮助吗?

import java.util.Scanner;
public class evenDigits {

public static int countEvenDigits(int number){
    if (number == 0)
        return 0;
    else{
        int lastDigit = number % 10;
        int result = countEvenDigits(number / 10);
        if (lastDigit % 2 == 0)
            return result + 1;
        else
            return result;
    }
}

public static void main(String[] args) {

    System.out.println("Please enter an integer.");
    Scanner keyboard = new Scanner(System.in);
    int number = keyboard.nextInt();

    countEvenDigits(number);

    System.out.println("There are " + result + " even digits in " + number);


}

}

具体来说,这个语句有错误:

System.out.println("There are " + result + " even digits in " + number); 

【问题讨论】:

  • 具体来说,这条语句有错误:System.out.println("There are " + result + " even numbers in " + number);
  • 您在 main 中没有收到来自 countEvenDigits 的返回值!您甚至还没有在 main 中定义 result
  • 在您的主目录中尝试int result = countEvenDigits(number);result 仅在方法中声明,不在您的 main 中。
  • 太好了,谢谢!
  • 不,它们可以是单独的变量。

标签: java recursion user-input


【解决方案1】:

main你需要改变:

countEvenDigits(number);

到:

int result = countEvenDigits(number);

否则,您将访问 println 中不存在的变量

【讨论】:

    猜你喜欢
    • 2017-03-25
    • 2020-11-03
    • 1970-01-01
    • 2013-03-14
    • 2020-10-17
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多