数组“丢失返回语句”1错误

时间:2011-03-02 07:19:58

标签: java

import javax.swing.JOptionPane;

public class Mate {

double suma (double x1,double x2)
    {return x1+x2;}

double suma (double x1,double x2,double x3)
    {return x1+x2+x3;}

double suma (int num [ ])

    {int i=num.length;
     int j=0;
     int s=0;

for(j=0;j < i;j++)

{return (double)(s);}}} // here appears the error "missing return statement"

class AplicacionMate

{public static void main (String arg [])

    {int n[ ]={5,4,3,2,1};
     double r=0.0;
     Mate m=new Mate ( );
     r=m.suma(5,4);
     JOptionPane.showMessageDialog(null,"La suma 1="+r);
     r=m.suma(5,5,4);
     JOptionPane.showMessageDialog(null,"La suma 2="+r);
     r=m.suma(n);
     JOptionPane.showMessageDialog(null,"La suma del arreglo="+r);
     System.exit(0);}}

2 个答案:

答案 0 :(得分:3)

我冒昧地格式化你的代码。这是方法的外观:

double suma (int num [ ]) {
    int i=num.length;
    int j=0;
    int s=0;

    for(j=0;j < i;j++) {
        return (double)(s);
    }
}

我怀疑你试图编写一个sum-method,以stub开头,并且没有编译它。这可能是你的想法:

double suma (int num [ ]) {
    int i=num.length;
    int j=0;
    int s=0;

    for(j=0;j < i;j++) {
        // here you probably want s += num[j];
    }

    return (double)(s);

}

Java编译器只能推断出在非常简单的情况下可以访问语句(例如return)。 (为了说明:这个方法编译。虽然不是很有用!)

double suma (int num [ ]) {
    int i=num.length;
    int j=0;
    int s=0;

    for(j=0; true; j++) {
        return (double)(s);
    }
}

答案 1 :(得分:1)

for(j=0;j < i;j++)

{return (double)(s);}}} // here appears the error "missing return statement"

可能存在没有进入循环的情况,因此它不会返回任何内容。

您需要确保它应该返回所有案例