1

尝试阅读一些旧的 BASIC 代码来进行移植,并遇到了这个令人费解的概念:

1150 DEF FNB(Q)=Q+8*((Q=9)-(Q=0))

这里发生了什么?你怎么能分配给这样的参数?为什么这不等同于Q+8*(9-0)

我写了一个小演示来调查,但它没有产生任何我期望的结果:

10 DEF FNB(Q)=Q+8*((Q=9)-(Q=0))
20 PRINT FNB(1)
30 PRINT FNB(2)
20 PRINT FNB(3)
30 PRINT FNB(10)
RUN
 1
 2
 3
 10
Ok

我一定做错了什么,因为FNB不能是一个身份功能。

有人能解释一下 BASIC 在这个函数中实际上在做什么吗?为什么我的演示没有帮助?

4

1 回答 1

0

啊,我刚得到它。

这不是函数内部的赋值,而是相等测试!

如果它们相等,则返回 -1 (为什么...),否则返回 0。

例如:

10 print 9=9
20 print 9=8
RUN
-1
 0
Ok

伙计,我已经很久=没有使用一种用于平等的语言了……

于 2016-04-01T17:54:21.250 回答