如何通过Java中的方法返回最大数组的长度值

时间:2017-10-15 23:56:14

标签: java arrays oop intellij-idea methods

代码片段在一个单独的类中。

有两个数组。第一个的大小是5,第二个是8。

double[] x = new double[5];
double[] y = new double[8];

我需要编写一个方法来比较两个数组的长度( x,y )并返回最大数组的长度( y )。

我试过了,但 IntelliJ IDEA 显示语法错误。

// version 1
private int getLargeArray( double[] x, double[] y ) {

    boolean checkLargeArray = x.length < y.length;
    int result;

    if( checkLargeArray == true ) {
        result = y.length; // 'result' is ignored
    } else if( checkLargeArray == false ) {
        result = x.length; // 'result' is ignored
    }

    return result; // uninitialized variable
}

Java 没有看到变量'结果',这是'if',因此它不会返回它。如果我在方法开始时为变量'结果' 0 ,则返回 0 并忽略'if'块。

第二个版本也不起作用。 据我所知,Java不支持返回,返回if,else和for。

// version 2
private int getLargeArray( double[] x, double[] y ) {

    boolean checkLargeArray = x.length < y.length;

    if( checkLargeArray == true ) {
        return y.length;
    } else if( checkLargeArray == false ) {
        return x.length;
    }
} // waiting for return...

IntelliJ IDEA 屏幕截图。

Syntax error of version 1

Syntax error of version 2

3 个答案:

答案 0 :(得分:1)

您必须在开始时初始化变量结果,因为使用您的代码,变量结果可能无法初始化。喜欢:     int result = 0; 你的第一个代码块应该可以工作。

答案 1 :(得分:0)

你可以这样写:

if(x.length < y.length) {
    return y.length;
}
else {
   return x.length;
}

使代码工作只需执行IDE要求的操作。在第一种情况下,尝试将结果初始化为0.在第二种情况下,添加return语句。 Idea要求它,因为在某些情况下,两个条件语句都可能是错误的。

答案 2 :(得分:0)

private int getLargeArray( double[] x, double[] y ) {
    return x.length > y.length ? x.length : y.length;
} 

这是你能做的最简单的事情