問題
學弟學妹們在用lingo做作業,遇到了一個報錯(如圖1、圖2),並截圖向我諮詢:
上圖爲圖1:原代碼
上圖爲圖2:運行結果
解決
解決方案:在第5行game()後加分號(“;”):
game(playerA, playerB):C;
成功解決,如下圖。
上圖爲圖3:沒有報錯,成功運行
經驗、思考
其實lingo我並不熟悉,但這類問題是同學們(非軟工/CS 專業)常犯的錯誤:
- 一般來講,剛接觸“用代碼進行計算”的同學會額外注意變量、邏輯上的設置;
- 但是,常常會因爲過於注意變量與邏輯,而忘記關注語法;
- 況且如lingo / matlab這種工具,雖然是通過代碼來設置解決方案,但是並沒有很好地代碼編輯環境,不能準確地糾錯報錯。
另外,我爲什麼能一下確定問題出在少了分號:
- 一般來講,如果是invalid syntax語法錯誤,這個問題還是比較好辦的;
- 對於
A
B
這兩行指令,如果報錯是在B行的首個字符,並且錯誤類型是invalid syntax語法錯誤,那十有八九就是A行行末少了分號。 - 因爲沒有分號的話,計算機會把AB理解爲同一行的。