发现这个错误是我做错了什么吗?

Is there something I'm doing wrong to pick up this error?

我是 Ti-basic 的新手,我正在尝试对其进行编码。我正在尝试制作这个 'special type of input' 程序。它有点像输入,但它会在按下时显示单词(并且不需要输入 alpha)

到目前为止,这是我认为与错误有关的代码

:{41,42,43,51,52,53,54,55,61,62,63,64,65,71,72,73,74,75,81,82,83,84,85,91,92,93,94,102,103,103}→∟KEYS
:"ABCDEFGHIJKLMNOPQRSTUVWXYZθ :?"→Str7
:0→K
:""→Str1
:
:Repeat K=105
:getKey→K
:If max(∟KEYS-K)
:prgmFINDIND
:.........
:End

在 prgmFINDIND 里面,这是代码

:1+sum(not(cumSum(∟KEYS=K)))→I
://I is used later on in the code. It isn't pertaining to the problem.

我已经对此进行了暂停测试,发现问题出在 if 语句中。它 returns 一个 'INVALID DIM' 错误。

有人知道怎么回事吗?

在这部分(稍作编辑)

Repeat K=105
    getKey->K
    If max(|LKEYS=K
        prgmFINDIND
    Str1+sub(Str7,I,1->Str1
End

prgmFINDIND 仅当按下的键在列表中时才被调用,否则索引 I 不会更改(并且可能隐式为零,或保留在那里的任何其他值) .

在 INVALID DIM 上按 GOTO 实际上会转到 Str1+sub(Str7,I,1->Str1,表明使用了错误的索引来索引 Str7。

它可以通过使用 If/Then 块来解决,它可以覆盖多个语句:

Repeat K=105
    getKey->K
    If max(|LKEYS=K
    Then
        prgmFINDIND
        Str1+sub(Str7,I,1)->Str1
    End
End