为啥我的代码无法运行?数字相加的Java程序

Posted

技术标签:

【中文标题】为啥我的代码无法运行?数字相加的Java程序【英文标题】:Why wont my code run? Java program to add numbers为什么我的代码无法运行?数字相加的Java程序 【发布时间】:2014-06-25 22:16:00 【问题描述】:

你能帮我找出我的错误吗? 我在这里尝试使用这两种方法,但我的输出不起作用。

class Nine 
    public static void Nine(String[] args) 
        int x,y,z;
        y = 3;
        x = 7;
        z = addEm(a, b);
        System.out.println("answer= " +x);
    
    public static addEm (double a, double b)
        int c;
        c = a+b;
    

【问题讨论】:

你的主要方法在哪里? addEm 方法的返回类型?您可能想要输出 z 而不是 x? SO 不是调试服务,即使对于小程序也是如此。请陈述一个可以回答并可能对未来访客有用的明确问题 你的程序不会运行,因为它不会编译! 【参考方案1】:

其实你的代码有很多错误:

        z=addEm(a, b);

这里 a 和 b 没有意义,你应该使用z=addEm(y,x);(如果你的意图是三加七)

        System.out.println("answer= " +x);

我猜你想显示总和的结果,因此你应该打印 z(而不是 x),所以你应该用 System.out.println("answer= " +z); 代替

    public static addEm (double a, double b) 

这里你错过了返回类型,你还需要考虑参数a和b的类型。由于 y,x 和 z 是 int,最好 a 和 b 也是 int,因此也将返回类型指定为 int: 公共静态 int addEm (int a, int b)

或者您可以将所有内容(y、x、z、a、b 和返回类型)声明为双精度:这里重要的是它们应该都是相同的类型。此外,您还错过了函数 addEm 的返回语句,总结变为:

public static int addEm (int a, int b)

    int c;
    c=a+b;
    return c;

最后还有函数

public static void Nine(String[] args)

为入口点命名不正确:它的名称应该是 main。

因此,总而言之,如果您应用所有修复(通过尽可能少地修改您的原始代码),那么按照某些“逻辑”编译、运行和工作的代码是:

class Nine 

    public static void main(String[] args) 
        int x, y, z;
        y = 3;
        x = 7;
        z = addEm(y, x);
        System.out.println("answer= " + z);
    

    public static int addEm(int a, int b) 
        int c;
        c = a + b;
        return (c);
    

【讨论】:

【参考方案2】:

伙计,这是一个非常基础的 java 课程:

每个 prog 都需要一个入口点,在 java 中:

public static void main(String args[])

然后你的代码就会执行。

【讨论】:

其实不是这样的。代码还有一些其他问题会使编译器适应。【参考方案3】:

您将参数 a 和 b 传递给 addEm,但这些变量未初始化。我希望你想传递 x 和 y。

class Nine 

  public static void Nine(String[] args) 
  
    int x,y,z;
    y=3;
    x=7;
    z=addEm(x, y);
    System.out.println("answer= " +x);
  
  public static addEm (double a, double b)
  
    int c;
    c=a+b;
  

【讨论】:

这不会编译,因为addEm 的参数是双倍的,而您正试图将 int 传递给它。该方法也没有返回类型。 这是真的。原版有很多问题,我的回答解决了许多问题之一。解决部分问题是不是很糟糕? 没有冒犯,但这并没有解决问题。做到了吗?【参考方案4】:

您的代码将不起作用,因为您的 addEm 方法没有任何返回类型。此外,您编写的方法采用 Double 参数,但在使用时您试图将 int 传递给它。您也没有任何主要方法。我假设您拼写错误或误解了主要方法,所以下面是应该工作的代码

class Nine 

  public static void Main(String[] args) 
  
    int x,y,z;
    y=3;
    x=7;
    z=addEm(x, y);
    System.out.println("answer= "  + x);
  
  public static int addEm (int a, int b)
  
    int c;
    c=a+b;
    return c;
  

【讨论】:

以上是关于为啥我的代码无法运行?数字相加的Java程序的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Java 程序在捕获到异常后退出?

为啥我的汇编代码无法找到最大的数字?

为啥我的 Spring Boot Web 应用程序无法在 Gradle 中完全运行?

为啥我的分拣程序这么慢? (java中的基数/桶排序)

为啥我的引导加载程序无法在最近的笔记本电脑上运行?

为啥我不能从我的 java 程序运行批处理命令? [复制]