【发布时间】:2016-06-16 19:59:52
【问题描述】:
所以我想创建一个方法,从两个给定的数组中输出一个长度最小的数组,但该方法总是要求在 if 语句之外返回
public static int[][] SmallestArray(int[][] A, int[][] B){
if(A.length < B.length){
if(A[0].length <B[0].length)
return A;
}
else if(B.length < A.length){
if(B[0].length <A[0].length)
return B;
}
}
【问题讨论】:
-
你忘记了 B.length == A.length 大小写
-
你没有覆盖所有的执行路径。所有非 void 方法都需要返回语句的路径
-
那是因为仍然存在不满足任何条件的情况。然后你会进入一个未被覆盖的分支,但该方法仍然需要返回一些东西。例如:
A和B长度相同时会发生什么? -
比如
A[0] > B[0]在第一个条件下呢?另外,你不能保证得到一个方形数组,所以A[1]可能比A[0]长 -
有人告诉我 A[0].length 返回数组中列的 nr