Java中如何通过方法返回最大数组的长度值 代码片段位于一个单独的类中。
有两个数组。第一个是5号,第二个是8号Java中如何通过方法返回最大数组的长度值 代码片段位于一个单独的类中。,java,arrays,oop,intellij-idea,methods,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.leng
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
}
//版本1
private int getLargeArray(双[]x,双[]y){
布尔checkLargeArray=x.length
Java没有看到变量'result',该变量位于'if'中,因此它不会返回该变量。如果我在方法开始中为变量'result'写入0,它将返回0,并忽略'If'块
第二个版本也不起作用。
正如我所知,Java不支持返回,返回是在if、else和for块中
//版本2
private int getLargeArray(双[]x,双[]y){
布尔checkLargeArray=x.length
IntelliJ IDEA屏幕截图
必须在开始时初始化变量结果,因为使用代码可能无法初始化变量结果。比如:
int结果=0代码>
这样,您的第一个代码块就可以工作了。您可以这样编写:
if(x.length < y.length) {
return y.length;
}
else {
return x.length;
}
if(x.length
要使代码正常工作,只需执行IDE要求的操作。在第一种情况下,尝试将结果初始化为0。在第二种情况下,添加return
语句。Idea要求它,因为在某些情况下,两个条件语句都可能是错误的
private int getLargeArray( double[] x, double[] y ) {
return x.length > y.length ? x.length : y.length;
}
这是您可以做的最简单的事情如果您简化逻辑(使用布尔值作为条件,使用else而不使用另一个If块),它应该可以工作返回Math.max(x.length,y.length)代码>编辑:如果这是一个赋值,而您不能使用Math.max,那么请使用下面的Russiancold方法。正如我所知,Java不支持返回值,返回值以if、else和for块为单位。-这不是真的,如果语句末尾至少有一个else
,它将返回if语句,就像开关中的默认值一样。您的语句在最后一次执行时具有else if
,这就是为什么在方法的最后一次执行时可能会出现dead code
。在版本1:您必须初始化变量结果:int result=0
在版本2:您必须具有else
块或更改else if(checkLargeArray==false){}
toelse{}
private int getLargeArray( double[] x, double[] y ) {
return x.length > y.length ? x.length : y.length;
}