我在尝试编译代码时收到错误“ERROR:expected'='”。我猜它与我的函数定义有关。有人可以帮忙吗?
1 REM declare function
2 DEF FNS(a) = a * a
3
4 REM declare variables
5 LET numOne = 0.0
6 LET answer = 0.0
7
8 REM get input from user
9 INPUT "Enter a number: "; numOne
10
11 REM get answer
12 answer = FNS(numOne)
13
14 REM display answer
15 PRINT "Answer: "; FNS(numOne)
答案 0 :(得分:1)
您的代码可以在许多BASIC变体上完美运行(例如AppleSoft - 请参阅this emulator),但不是每个变体都可以。
如果JS Basic是你的意思this project,那么就会发现这个变体(据我所知)不支持DEF FN
,所以你将需要GOSUB
。此外,PRINT
和INPUT
的参数由简单的空格(非分号)分隔,并且必须将$
附加到每个变量名称。
我调整了你的代码以在这些约束中工作(它在上面的JS Basic链接中运行正常)。我保持你的行号乘以10以便于比较。
00 GOTO 35
05
10 REM Subroutine SQUARE
15 REM Input: arg$ Output: result$
20 result$ = arg$ * arg$
25 RETURN
30
35 REM Program Start
40 REM declare variables
50 numOne$ = 0.0
60 answer$ = 0.0
70
80 REM get input from user
90 INPUT "Enter a number: " numOne$
100
110 REM get answer by calling SQUARE subroutine
112 arg$ = numOne$
115 GOSUB 10
120 answer$ = result$
130
140 REM display answer
150 PRINT "Answer: " answer$
请注意,在此变体中,您不必在使用之前初始化变量。使用INPUT
,所以你真的不需要50和60行。