我在搜索一些答案時遇到了下面的代碼。在遞歸中繼續關鍵字
public static void recurse(Scanner in, HashMap<String, Integer> oldMap) {
HashMap<String, Integer> map = null;
if (oldMap == null)
map = new HashMap<String, Integer>();
else
map = new HashMap<String, Integer>(oldMap);
while (in.hasNext) {
String s = in.nextLine();
if (s.startsWith("[")) {
recurse(in, map);
continue;
}
if (s.startsWith("]")) {
break;
}
String[] split = s.split(" ");
if (s.startsWith("print")) {
System.out.println(map.containsKey(split[1]) ? map.get(split[1]) : 0);
continue;
}
int x = 0;
try {
x = Integer.parse(split[1]);
} catch (Exception e) {
x = map.containsKey(split[1]) ? map.get(split[1]) : 0;
}
map.put(split[0], x);
}
}
有人請解釋我,爲什麼這個人使用後繼續遞歸調用。這似乎是因爲每次處理遞歸調用都不會處理繼續。
嗨路易斯,我同意,但爲什麼在if語句中已經提到繼續。我的意思是,如果我刪除繼續,那麼它會按原樣運行。 – manishpro 2013-02-08 18:07:30