有两个数组。第一个的大小是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 屏幕截图。
答案 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;
}
这是你能做的最简单的事情