You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GW-BASIC中无需IF语句实现行星重量计算的变量匹配?

在GW-BASIC里不用IF语句匹配行星重量系数的方法

有两种可行方案,其中利用EVAL函数的方法最直接,完全不需要IF语句:

方案一:用EVAL实现间接变量引用

GW-BASIC的EVAL函数可以把字符串当作变量名解析,直接获取对应变量的系数值,代码修改如下:

10 LET jupiter=2.54:LET mercury=0.38
20 INPUT weight
30 INPUT "planet to determine weight on"; planet
40 ON ERROR GOTO 70 ' 捕获未知行星的错误
50 LET weight2 = EVAL(planet) * weight
60 GOTO 80
70 LET weight2 = 0 ' 未知行星时返回0
80 PRINT "your weight on"; planet; "is"; weight2
  • 原理:当用户输入jupiter时,EVAL("jupiter")会直接返回变量jupiter的值2.54,省去了逐个判断的IF分支。
  • 加入错误处理是为了防止用户输入不存在的行星导致程序崩溃,此时体重会设为0。

方案二:数组配对存储(扩展更方便)

如果后续要添加更多行星,用数组存储行星名和对应系数会更易维护,虽然循环里用到了一次IF,但比多层ELSE IF简洁很多:

10 DIM planets$(2), factors(2)
20 planets$(1)="jupiter":factors(1)=2.54
30 planets$(2)="mercury":factors(2)=0.38
40 INPUT weight
50 INPUT "planet to determine weight on"; planet
60 LET weight2=0
70 FOR i=1 TO 2
80   IF planets$(i)=planet THEN LET weight2=factors(i)*weight:EXIT FOR
90 NEXT i
100 PRINT "your weight on"; planet; "is"; weight2

内容的提问来源于stack exchange,提问作者Sam H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 23:12:39