当前位置:文档之家› vb程序设计中的逻辑错误

vb程序设计中的逻辑错误

霆塑:笠凰

Ⅶ程序设计中的逻辑错误

钱锦

(常州广播电视大学,江苏常州213000)

∥脯要】、;B中擞值型奇以与其毛菜同类型相互转换,但处理不当就有可能导致逻辑错误。选择结构控帝j中都是条件设置也是经常出现建77

’辑错误的地方。

:.拱键词]逻辑错误;分支结构;程粕受计

‰}!

f?

V B cvi sual B a si c)是—种可视化面向对象高级结构化程序设计语言,可用于开发各类应用程序。它简单易学、功能强大,很适合初学者

学习程序设计,所以它是程序设计中常用的编程语言之一。一般常用V B60腻

在使用V B编程时经常出现的三种错误是语法错误、实时错误和逻辑错误。语法错误表现在拼写错误、标点符号遗漏或是使用的语法格式不正确,这种错误在书写程序时,最迟试运行时系统都会提示错误,我们可以根据系统的提示很快找到错误并改正过来。实时错误是指应用程序运行期间,一条语句试图执行一条不可能执行的操作而产生的错误,比如:除数为零、数组下标越界等,运行时系统会提示错误。而逻辑错误主要表现在程序运行后,得到的结果与预期设想的不一致,这就有可能是出现了逻辑错误。通常出现逻辑错误的程序都能正常运行,系统不会给出提示信息,所有很难发现。要发现和改正逻辑错误需要仔细阅读和分析程序。以下几个问题是经常出现逻辑错民并较难发现的地方。

1逻辑表达式写错

例1:5

数学上表示变量X的取值在5到10之间。该表达式在V B中也能被执行,但不管X的取值为多少,表达式的结果永远为T r ue o 原因是V B中的数据类型主要有数值型、字符型、逻辑型、日期型、变体型、对象型等。其中数值型又可以分为整型、长整型、单精度和双精度等。当两个不同类型的变量或常量参加运算时,有自动向精度高的类型转换的功能。比如,逻辑常量T rue转换为数值型的值为一1,Fal s e为0;反之数值型非0转换为逻辑型的值为T r ue,0为Fal s e=同样数字字符与数值运算,转换为数值型。

例2:P r i nt True+3‘显示的结果是2

P r i nt。123。十1oo’显示的结果是223

根据以上原因,表达式5

2同时给多个变量赋值

在C语言中,可以实现同时对多个变量赋值,而在V B中规定一句赋值语句内只能给—个变量赋值,但下面的程序在V B中是可以正常运行的。

例3:D i m a,bA sInt e ger,cA sInt e ge r

a=b=c=l

Pr i nt a,b,C

例3中变量a为变体型,b和C为整型。在赋值语句“a=b=c=l‘中,从左边起,第—个“=。是赋值符号,后两个“=。是关系运算符,该句的功能是首先判断b和C是否相等,由于b,C的初始值都是O,所以结果为Tr ue,然后把Tr ue转换为数值一1,再与数值1进行比较,最后结果为逻辑值F a l se赋值给变量a。该程序执行后的显示为

F a l se00

V B中给a,b,C赋值正确的写法为:a=l:b=l:c=1

3选择结构中条件的设置

在结构化程序设计过程中,选择结构中或是循环程序中的条件如果设置不当很容易产生逻辑错误。

例4:已知百分制成绩s cor e,显示对应的等级:

20l O年4月(日

一I|14.

,≯

。h?j口l。j I~…,?一…-j{、|“L‰,^?锄。二乙Ⅲ…㈧。m?qjf j:k】{|{Ⅲ吣|妯黪Sel ec t Cas es core

C a se l s>=60

Pr i n t“及格”

C as el s>=70

Pr.nt。中等。

C ase I s>=80

Pr i n t“良好”

C a se I S>--90

Pr i n t“优秀”

C ase E l s e

Pr i n t。不及格。

E ndSel e ct

例5:I f chec kl.v al ue=l t he n

T ext l=。我的爱好是体育”

E I sel f check2.va I ue=1t hen

T ext l=“我的爱好是音乐。

E l sel f checkl.va l ue=l an dche ck2.va l ue=l t he n

T ext l=“我的爱好是体育音乐。

E nd i f

上面的两例子在语法上都没有错误,但由于多分支结构中,当满足其中一个条件时就不再判断是否满足其他条件,所以例4中不管是100分还是60分,输出的结果都是及格。例5中第3各分支永远都执行不到,当c hec kl和c hec l<2都选中的话,输出结果为“我的爱好是体育。。这种错误隐蔽得较深,较难发现,对于多分支程序在测试的时候一定要保证每—个分支都能被测试到。

4数值型数据的逻辑运算问题

在V B中不仅有逻辑类型的数据;并且逻辑运算的与(and)运算和或(or)运算不仅能对逻辑量进行运算,也能对数值型的量进行逻辑运算,因为逻辑值可以与数值进行相互转换。

例6:D i m aas B ool ean

a=San d8

pr i n t a

结果为Fal s e,V B中对数值型数据进行逻辑运算时,它是按位运算的。上例中5的二进制为00000101而8的二进制为00001000,按1andl为1,其余为零的运算规则,结果为数值00000∞0,转换为逻辑型Fal seo如果操作数为负数,进行逻辑运算时要将负数转换为补码再运算,一5转换为补码1””O”与8进行and运算,结果为00001000,转换为逻辑型T r ueo对数值型数据进行逻辑运算并非V B 编程的主流,请注意即可。

对于逻辑错误,可以利用V B提供的调试工具来发现和改正错误。比如:断点设置、单步执行..显示变量和属性的值等。如果怀疑程序的

错误是由于执行路径或是变量的值不正确等原因造成的,除了采用设置断点的方式进行调试外,还可以借助于M sgbox语句。

}j_“1j j?b}j t÷|’1l11j-j,j{{一?a'/11”’…¨㈦j||u”‘一?j3/?,/。11;?[参考文献】一‘1。。

:It]刘世峰.vin砧m斑程序设计肆j央广播电视大学出版社.2004.

?【2】赵光峰,崔瑞海.V弧mB商c程J葶没计教程【M】.高等教育出版社0000._H

相关主题
文本预览
相关文档 最新文档