首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GW-BASIC中的嵌套IF...THEN...ELSE

GW-BASIC中的嵌套IF...THEN...ELSE
EN

Stack Overflow用户
提问于 2016-09-29 02:48:18
回答 2查看 1.6K关注 0票数 3

我使用下面的代码块来测试gw-basic程序中的一些条件。

代码语言:javascript
复制
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程序中的错误是什么?

EN

回答 2

Stack Overflow用户

发布于 2016-12-13 03:07:57

如果平均>=为40,平均<=为49,则等级$= "E“否则等级$= "F”

因为这行IF THEN ELSE总是会给IF THEN$赋值(不管Average的内容是什么),所以前面的所有值都没有多大价值。

然而,解决方案是非常非常简单的。不要使用ELSE子句,一开始就给等级$一个默认值"F“。这样,只有当所有这些条件的计算结果都为false时,程序才会返回"Grade is: F“。

代码语言:javascript
复制
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$
票数 4
EN

Stack Overflow用户

发布于 2017-08-28 22:52:53

假设打印平均行是行号70,那么在除ELSE行之外的每一行之后写入GOTO 70。如果有效的话,试试吧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39755438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档