问题
学弟学妹们在用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理解为同一行的。