我想达到以下内容:我向用户询问一个数字,然后输出如下字符串:
-STR$
--STR$
---STR$
----STR$
-----STR$
我试图这样做:
10 INPUT NUM%
20 FOR X=1 TO NUM%: PRINT NUM%*"-" + "TEXT" : NEXT
上面的代码给了我一个错误:?TYPE MISMATCH EROR IN 20
但是,我还没有弄清楚如何操作字符串的开头以在每次循环运行时乘以“-”标记
也许是这样:
10 INPUT NUM%
20 FOR I = 1 TO NUM%
30 FOR J = 1 TO I: PRINT "-"; : NEXT
40 PRINT " TEXT"
50 NEXT
据我记得旧(好)时代,没有字符串/字符的倍数。
我相信更古老、更原始的 BASIC 形式也有 STRING$() 函数。它需要两个参数:重复字符的次数和字符本身。所以...
10 INPUT NUM%
20 FOR X=1 TO NUM%: PRINT STRING$(NUM%, "-") + "TEXT" : NEXT
替代:
100 INPUT NM%
110 BR$="----------"
120 PRINT LEFT$(BR$,NM%);
130 PRINT "TEXT"
这消除了对昂贵FOR
循环的需要,并且只要NM%
不大于BR$
.
需要指出的另一件事是,您的变量名称实际上被限制为两个字符,例如:
变量名的长度是可选的,但最大。80 个字符(BASIC 的逻辑输入行)。BASIC 解释器仅使用前 2 个字符来控制使用变量。变量 A$ 和 AA$ 不同,但 AB$ 和 ABC$ 不同。
(来源:https ://www.c64-wiki.com/wiki/Variable )。出于这个原因,我使用NM%
而不是NUM%
; 它将防止以后出现问题。