【发布时间】:2021-12-22 07:38:12
【问题描述】:
我是一名刚开始学习递归编程的新程序员。我正在尝试递归比较矩阵的大小。
public static boolean mismasFilas(int[][] m1, int[][] m2, int fila) {
boolean sol = true;
int k = 0, h = 0;
if (fila >= 0) {
if (m1[fila].length != m2[fila].length) {
return false;
} else {
mismasFilas(m1, m2, fila - 1);
}
}
return sol;
}
到目前为止它工作得很好,但是 return false; 语句没有按预期工作,它没有退出该方法。我究竟做错了什么?感谢您的帮助。
【问题讨论】:
-
“相同尺寸”是指“相同尺寸”吗?如果您只处理 2 个级别,为什么还要使用递归?一个简单的第二级循环就足够了:
if(m1.length!=m2.length) {return false;} for(int i = 0; i < m1.length; i++) { if(m1[i].length != m2[i].length) { return false; }} return true; -
请注意,在
else块中,您正在执行递归调用,但您忽略了mismasFilas方法的返回值。