【问题标题】:Subroutines in BASICBASIC 中的子程序
【发布时间】:2016-01-13 06:58:45
【问题描述】:

我正在关注一本关于 Liberty BASIC 编程的书中的代码:

NOMAINWIN
PROMPT "Your name"; name$
CALL DisplayMessage name$
END

SUB DisplayMessage stuff$
X = INT(RND(1) * 2) + 1
IF X = 1 THEN
NOTICE stuff$ + " is a nice person."
ELSE
NOTICE stuff$ + " is a terrible person."
END IF
END SUB

想知道为什么不在子例程中使用name$ 而不是stuff$?以及子程序如何知道在name$stuff$ 之间建立连接?

【问题讨论】:

    标签: string variables call subroutine basic


    【解决方案1】:

    以相反的顺序回答您的问题:CALL DisplayMessage name$ 表示执行子程序DisplayMessage,将当前值name$ 放入stuff$。这种机制允许使用DisplayMessage 打印除name$ 之外的内容,从而使子例程更加有用。

    【讨论】:

    • 感谢斯科特。另外,如果我有 2 个或更多变量,例如:NOMAINWINPROMPT "Your name"; name$PROMPT "Your age"; age$CALL DisplayMessage name$, age$ENDSUB DisplayMessage stuff$, thing$SUB DisplayMessage stuff$, thing$X = INT(RND(1) * 2) + 1IF X = 1 THENNOTICE stuff$ + " is a nice person."@98765437@9876543336@986 987654339@ 此代码会将name$ 分配给stuff$ 并将age$ 分配给thing$,因为这是它们在参数列表中列出的顺序?
    猜你喜欢
    • 2020-04-09
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    相关资源
    最近更新 更多