我正在char array
使用递归进行字符串(即)处理。在我的recursion tree
, 位于的字符串child
长度小于 1 wrtparent
并且相同高度的所有子项具有相同长度的字符串但不同的字符。string
每当新长度大于或等于旧字符串长度时,我想停止递归,但我无法在递归之间插入此条件。使用System.exit(0)
终止了我不想要的完整程序。下面是我的代码片段-
private static void getMinLen(char[] oldStr) {
int len = oldStr.length;
/*
* This terminates the whole program, using break in place of
* System.exit(0) is not effective
*/
if (len < 2)
System.exit(0);
char[] newStr = new char[len - 1];
for (int i = 0; i < len - 1; i++) {
/*
* Every character is matched with its next character and a new char
* array is created having length (len-1)
*/
getMinLen(newStr);
}
}
实际上,当我放入System.out.println("length=" + len);
第 3 行时。首先它以递减顺序打印长度,但随后长度增加,由于递归而减少。我的意思是控制台显示以下内容-
length=6
length=5
length=4
length=3
length=2
length=1
length=3
length=3
length=2
length=1
length=4
length=3
length=2
length=1
我只想在新长度大于或等于旧长度时停止递归。