java - 为什么此代码段显示编译错误?

最佳答案

您正在尝试在factorial方法内部创建一个称为main的方法。它必须在它旁边,而不是在它里面。

可读且一致地格式化代码有助于使问题更清楚:

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int n = scan.getInt();
        System.out.println(factorial(n));

        int factorial(int a) {                  // <=== Problem
            if (a == 0)
                return 0;
            else
                return (a * factorial(a - 1));
        }
    }
}

代替:
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int n = scan.getInt();
        System.out.println(factorial(n));
    }

    int factorial(int a) {
        if (a == 0)
            return 0;
        else
            return (a * factorial(a - 1));
    }
}

上面仍然有一个问题(factorial必须是static,或者您需要创建一个实例来调用它),但是现在在正确的位置。

https://stackoverflow.com/questions/41675942/

上一篇:c# - 为什么编译器认为Environment.Exit可以返回?

下一篇:c++ - 以下代码段出了什么问题?

相关文章:

java - Kotlin + Dagger 2 : Dagger* files won't generate

java - 如何重定向 Groovy 脚本的输出?

c# - 引用Shell32.dll?

c++ - fatal error :iostream:Code::Blocks 中没有这样的文件或目录

objective-c - 不允许分配给 'readonly' 返回结果,但属性声明为 "readwrite"

java - 如何在 android studio 中单击按钮时更改另一个 Activity 中的 TextView 文本?

java - Ivy 间接依赖项列出两次

c++ - 无法将模板类通过管道传递给 cout

java - 防止java.lang.StackOverflow错误简单sql池

c++ g++ & boost, token "("之前缺少二元运算符

相关文章:

c# - 无法将类型int隐式转换为int数组

java - “Cannot find symbol class keyboard reader”

java - 我的method.add(int)不会将用户输入添加到我的数组中

c# - 为什么编译器认为Environment.Exit可以返回?

c++ - 编译器在声明类时显示未定义的结构错误

swift - 类型 'Category'(aka 'OpaquePointer')的值没有成员 '

c++ - 编译器错误: not declared in the scope

ruby-on-rails-3 - 在命名空间模型上使用 factory_girl_rails 和

python - mysql-python的pip安装错误无法正常工作

c++ - 为什么 “std::isdigit”在Windows上的C++中报告 “no match