
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.3.2 调试

程序员通过调试可以看到程序的执行顺序,也可以发现程序的错误。本小节将讲解两种调试方式,分别为简单调试和编译器调试。
1.简单调试
简单调试使用的是输出语句,通过输出语句可以看到程序执行的位置,如图4.9所示。

图4.9 简单调试
当输出aaaaa时,可以看到程序执行到了第4行;当输出bbbbb时,可以看到程序执行到了第6行。依次类推。
如果程序员要找到程序中出现的错误,可以输出中间变量的值和数据类型。
【示例4-4】下面将计算长方形的周长。代码如下:

运行结果如下:

通过周长和类型的输出会发现输出的结果是不正确的,正确周长应是60。根据输出的结果,可以发现以下代码是错误的,即忽略了优先级的问题:

需要将a+b括起来才行,因此正确代码如下:

2.编译器调试
编译器的调试功能可以让代码逐条执行。要实现此功能,需使用快捷键F7,或者选择菜单中的“运行”|“步入”命令。通过逐条执行可以很清楚地看到程序的执行流程,如以下代码:

通过编译器调试可以看到执行流程,如图4.10所示。

图4.10 执行流程
注意:左边的绿色箭头指示的代码及背景变为绿色的代码就是正在执行的代码。如果要查看变量的值及数据类型,可将鼠标指针放到变量上,如图4.11所示。

图4.11 查看变量的值及数据类型