“遞迴函式最基礎的終止條件是什麼?”
沈知意站在講臺邊,手裡的點名冊還停在林澈名字那一行。
林澈起身時,腦子裡先跳出來的是工程裡的異常出口。他從輸入規模、呼叫棧和邊界校驗講起,又補了快取策略,二十秒裡給出了三種防止無限呼叫的辦法。
階梯教室前排有人回頭,旁邊同學原本等著抄一句答案,筆尖停在了紙上。
沈知意沒有打斷他。等最後一個術語落下,她才把投影翻回題目頁。螢幕上只有一行短程式碼,空白處等著最基礎的判斷。
“講完了?”
“講完了。”
“終止條件呢?”
林澈看著那行程式碼,剛才的答案裡有異常處理,有效能最佳化,偏偏沒有題目要的那個值。
“輸入到零時返回。”他說。
“完整一點。”
“當引數滿足基準情形,函式直接返回結果,不再繼續呼叫自身。”
沈知意把點名冊合上:“坐下。複雜解法不能替你補上漏掉的基礎條件。”
教室裡響起一陣翻頁聲。沒人笑,林澈坐下時反而更清楚地聽見椅腳刮過地面的聲音。他把剛才那頁筆記從中間劃開,上面半頁寫滿工程經驗,下面只補了一句最短的答案。
沈知意繼續點了兩名學生。一個把返回值寫錯,另一個忘了引數變化,她都按同樣的順序追問,直到回答的人自己把程式碼改完。輪到下一頁課件時,她沒有再看林澈,也沒有替剛才那段過度複雜的回答找理由。
這堂課後半段安排隨堂練習。林澈本來想把題目抽象成可複用模板,寫到第三行,又把紙翻回來,按課堂要求從最簡單的例子開始驗證。相鄰座位的男生看見他被紅筆圈掉的兩行,低聲問:“你剛才說的那些都對吧?”
“有用。”林澈把基準條件補到最前面,“答這道題沒用。”
下課鈴響時,沈知意在黑板上寫下開放答疑的地點和時間:本教室,四十分鐘,排隊提問。已經走到門口的學生又回來幾個,有人抱著電腦坐到第一排,也有人拿著作業本在過道等。
林澈沒有離開。他把隨堂練習夾進課本,排在第五個。
前四個問題裡,有人問函式呼叫,有人問期中範圍,沈知意把答案寫在黑板上,所有人都能看見。輪到林澈時,後面還站著三名學生,他把剛才的練習放到講臺邊。
“這裡的基準情形,我能不能拆成兩個?”
沈知意看完,沒有立刻下結論:“先說你為什麼要拆。”
“一個處理空輸入,一個處理單元素。後面的遞推會簡單。”
“代價?”
“判斷多一次,邊界更清楚。”
“那就寫出來,讓測試結果回答。”
林澈拿起筆,把兩個分支補全。第二個測試用例跑通時,後面等著的女生順手記下了黑板上的寫法。他把紅筆圈過的兩行留在紙上,只在旁邊補了正確寫法。
沈知意把練習推回去,目光落在他夾在書裡的手機上。鎖屏提醒還留著上午撤回校園牆預覽的訊息,她只看見標題,沒有點開。
。問”?了生學大個像於終是不是近最“
”?算也,錯答題礎基“
”。像很都“,習練的他點了點筆用意知沈”。神走課上、業作程課“
”。全得看師老沈“
”。常正很見看我,面頁開公“
”。了束結疑答的你“:堂課到回經已氣語,來過接業作的學同位一下把
。他給留沒都眼一的餘多連,題看頭低意知沈,上補生學名一下由置位的前臺講。誰是人的裡片照釋解沒也,圖張哪了見看問追有沒,置位開讓書著抱澈林
。書舊本一出取面下臺講從又,群程課進發,來下拍題問共的上板黑把意知沈。半大了散人的裡室教,束結鐘分十四








