老师,命令的“样子”我记住了,那命令是如何让主角动起来的呢?
命令的执行是一个编译的过程,通过编译给计算机发送计算机能够识别的指令。
编译过程是什么样的,为什么要通过编译,计算机才能够识别呢?
别着急,接下来会详细给大家介绍编译的过程。
主角会根据输入的命令做出相应的动作,从效果来看,是通过命令直接控制主角的行动,而实际上是要执行一个“编译”的过程。
编译过程就是,将C#命令转换成计算机能够识别的机器码,这样的机器码才能控制主角的动作。编译过程不仅可以转换代码,还可以找到代码中的语法错误,如图2.4所示。
图2.4 编译过程
老师,书写命令时,命令写错了怎么办,我怎么能知道哪个地方写错了呢?
别担心,编译过程会像老师一样检查书写的语法错误。
哦,太好了。
代码命令必须按照规范要求书写,但我们常常会犯一些小错误,如命令名称拼错了、命令大小写写错了、忘记写分号等。编译过程中会逐个检查书写命令的格式,能够保证代码命令书写格式正确。
如果书写的命令代码有问题,编译就会发现错误,并在“日志区”里面给出错误提示。错误提示包括错误代码出现在哪一行和错误的类型,这有助于快速找到和修改问题。在问题修改后,可以重新运行代码,直到编译通过。
老师,我发现一个问题。
什么问题?
我命令的格式都正确,而且编译成功了,但是主角并没有按照我的命令执行活动呀!
如果出现这种情况,那一定是你的逻辑错了。
逻辑错误?
对,在书写命令代码时常遇到的两大类错误:语法错误和逻辑错误。
老师,关于逻辑错误,您能举个例子吗?
比如你想让主角前进3个方砖,却只写了2次move()命令,你是不是没有达到前进3个方砖的目的呢?
嗯,明白了,就是我的指令下达错了,比如我想让主角左转,但书写成right()。
是的,你理解的非常正确。
编译的时候只能发现代码中的语法错误,是没有办法发现逻辑错误的。如果代码中有逻辑错误,就只能在代码运行以后,通关观察主角的行动路线和动作来判断是否有bug。