【问题标题】:No main methods found [duplicate]没有找到主要方法[重复]
【发布时间】:2018-03-05 04:09:21
【问题描述】:
package CS1301;

public class Homework4 {

    public static void Questions(int value) {
        if (value > 0) {
            int count = 1;

            while (count <= value) {
                if (value % count == 0) {
                    System.out.println(count);
                }  

                count = count ++;
            }
        }
    }
}

所以我一直试图让它工作一段时间,但我似乎无法找到我做错了什么。当我尝试运行它时,它说“没有找到主要方法,但我虽然是 public static void 定义的方法。这样做的目的也是为了找到值的因素。这是我的第一个程序,所以任何关于更好格式的指针也将不胜感激。

【问题讨论】:

  • 我没有在其中看到 main 方法。

标签: java


【解决方案1】:

您必须有一个名为mainpublic static void 方法,它接受参数数组;

package CS1301;

public class Homework4 {

    public static void Questions(int value) {
        if (value > 0) {
            int count = 1;

            while (count <= value) {
                if (value % count == 0) {
                    System.out.println(count);
                }  

                count = count ++;
            }
        }
    }

    public static void main(String[] args) {
        Questions(5);
    }
}

【讨论】:

  • 您为 main 方法使用了不正确的参数。
  • 好吧,我让它工作了,但我想问一下在我最初使用它的上下文中,“public static void”到底是什么意思。我真的需要它吗?另外,如何正确使用++运算符?
  • 重复的问题解释了每个单词的含义。 ++ 运算符是一个单独的问题(在这个网站上可能已经回答了大约 25 次)。
【解决方案2】:

在java中,要启动一些东西,你需要一个特定类型的函数,可以在代码的起点识别

  • 必须是void 方法
  • 它的名字是main
  • 其参数必须是Stringarray(用于command-line

像这样:

public static void main(String[] args){
    // some code like computation
    // or function calls 
}

Further details at Oracle Doc


所以你有两个选择,把你的代码放在这个方法里面,或者放在另一个里面:

public static void questions(int value){
    // ... your code
}

public static void main(String[] args){
    questions(2);
    questions(19);
}

public static void main(String[] args){
    int value = 5;                     // <-- and put you value here
    if (value > 0) {
        int count = 1;
        while (count <= value) {
           //...
        }
    }
}
  • 第一种方式更适合您的清晰度
  • 更好地尊重约定并开始用情人大小写命名变量和方法名称Questions -> questions

【讨论】:

  • 我没有对你投反对票,但你应该自己遵守约定 ;)
  • @JacobG.like 是为了什么?
  • 有时你的方法结尾之间有空格,有时你没有。您的 main 方法也无法编译,因为 question 不是方法。
猜你喜欢
  • 1970-01-01
  • 2019-02-01
  • 2014-01-17
  • 2015-04-20
  • 2013-06-25
  • 1970-01-01
  • 2020-06-20
  • 2015-01-05
  • 1970-01-01
相关资源
最近更新 更多