我無法保存var stop,因此可以停止循環。當tryOpen爲true時,我只需要退出該方法並停止遞歸。來自語句的Java var無法保存
public void moznosti(char [] arr, String pr, int a, int b) {
boolean stop = false;
if (b == 0) {
char [] heslo = pr.toCharArray();
for (int i = 0; i < heslo.length; i++) {
System.out.print(heslo[i]);
}
System.out.println();
if (tryOpen(heslo)) {
stop = true;
System.out.println("END");
}
return;
}
if (stop == false) {
for (int i = 0; i < a; i++) {
String tmp = pr+arr[i];
moznosti(arr, tmp, a, b-1);
}
}
}
你問題不是很清楚。但是,如果您認爲可以在一次遞歸調用中設置「stop」,並且其他遞歸調用將能夠看到它,那麼您就錯了。每個遞歸調用都有一個單獨的局部變量'stop'。考慮使用'return'在遞歸調用之間進行通信。 – ajb
也許你需要'停下來'不是一個局部變量?可能是一個返回值。 – Thilo
你的意思是沒有void但布爾值? – NightRain