我使用下面的代码块来测试gw-basic程序中的一些条件。
IF Average >= 80 AND Average <= 100 THEN Grade$ = "A"
IF Average >= 70 AND Average <= 79 THEN Grade$ = "B"
IF Average >= 60 AND Average <= 69 THEN Grade$ = "C"
IF Average >= 50 AND Average <= 59 THEN Grade$ = "D"
IF Average >= 40 AND Average <= 49 THEN Grade$ = "E" ELSE Grade$ = "F"
PRINT "Average is: ", Average
PRINT "Grade is: ", Grade$它总是打印Grade is: F,不管±verage的值是什么。
这个gw-basic程序中的错误是什么?
发布于 2016-12-13 03:07:57
如果平均>=为40,平均<=为49,则等级$= "E“否则等级$= "F”
因为这行IF THEN ELSE总是会给IF THEN$赋值(不管Average的内容是什么),所以前面的所有值都没有多大价值。
然而,解决方案是非常非常简单的。不要使用ELSE子句,一开始就给等级$一个默认值"F“。这样,只有当所有这些条件的计算结果都为false时,程序才会返回"Grade is: F“。
Grade$ = "F"
IF Average >= 80 AND Average <= 100 THEN Grade$ = "A"
IF Average >= 70 AND Average <= 79 THEN Grade$ = "B"
IF Average >= 60 AND Average <= 69 THEN Grade$ = "C"
IF Average >= 50 AND Average <= 59 THEN Grade$ = "D"
IF Average >= 40 AND Average <= 49 THEN Grade$ = "E"
PRINT "Average is: ", Average
PRINT "Grade is: ", Grade$发布于 2017-08-28 22:52:53
假设打印平均行是行号70,那么在除ELSE行之外的每一行之后写入GOTO 70。如果有效的话,试试吧。
https://stackoverflow.com/questions/39755438
复制相似问题