1.3逻辑错误
逻辑错误是指应用程序未按预期方式执行,即没有实现指定的功能从而产生的错误,这种错误在调试时不会发生任何程序中断或跳出程序,而是一直执行到最后,可能会有结果,但是执行结果是不对的。逻辑错误通常可分为以下几种情况:
(1)逻辑表达式写错
如语句“1<x<10”,该式数学上表示变量x的取值在1到10之间,它在VB中也能被执行,但不管x的取值为多少,表达式的结果永远为True。因为VB中的数据类型主要有数值型、字符型、逻辑型、日期型、变体型、对象型等,其数值型又可以分为整型、长整型、单精度和双精度等,当两个不同类型的变量或常量参加运算时,有自动向精度高的类型转换的功能。比如,逻辑常量True转换为数值型的值为-1,False为0;反之数值型非0转换为逻辑型的值为True,0为False,同样数字字符与数值运算,转换为数值型。
根据以上原因,上述表达式中,先根据x的值判断 1<x,结果为True或是False,然后,True或是False转换成数值0或-1再与10比较,最后结果为True,所以无论x的取值为多少,结果永远为True。正确的表达式应写为:“1<x And x<10”。
(2)给不同数据类型的数据赋值时产生的逻辑错误
在C语言中,可以实现同时对多个变量赋值,而在VB中规定一句赋值语句内只能给一个变量赋值,如果不熟悉这个知识点,可能会产生难以发现的逻辑错误。如下面的程序在VB中虽可以正常运行,结果却不同于C语言。
例:Dim a, b As Integer, c As Integer
a=b=c=1
图书馆管理系统课程设计报告+数据库设计+绪论总结 Print a, b, c
该例中变量a为变体型,b和c为整型,在赋值语句“a=b=c=1”中,从左起,第一个“=”是赋值符号,后两个“=”是关系运算符,因此,该句的功能是首先判断b和c是否相等,由于b和c的初始值相等,所以结果为True,然后把True转换为数值-1,再与数值1进行比较,结果为逻辑值False,最后将该逻辑值赋值给变量a。该程序执行后的显示为
False 0 0
在VB中,该句正确的写法为:a=1:b=1:c=1。
(3)分支控制中的逻辑错误
例如,已知百分制成绩mark,显示对应的四级制成绩,程序代码如下:
Select Case mark
Case Is>=60
Print"及格"
Case Is>=70
Print"良好"
Case Is>=80
Print"优秀"
Case Else
Print"不及格"
End Select
上面代码中没有语法错误,但是由于是情况语句,当它们满足其中一个条件时就不再判断是否满足其他条件,所以不管是85分还是95分,输出的结果都是及格,很明显结果不是我们想要的。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
浅谈VB程序调试论文+工作模式+实例分析+方法技巧 第3页下载如图片无法显示或论文不完整,请联系qq752018766