如何使用 While 和 For 循环解决此问题?

How do I fix this problem with While and For loop?

我正在用 QBasic 编写一个程序,它会无限次询问 namesages 直到我按下 xxx 然后程序打印所有输入的姓名和年龄:

我一直得到 Zeros 而不是 namesages,无论多么困难我试试,我完全卡住了,下面是我的代码:

DIM i AS INTEGER
CLS
i = 1
WHILE nam$ <> "xxx"
   Input "Enter name: ", nam$
   Input "Enter age: ", age$
   Sum$ = nam$ + age$ (i)
   i = i + 1
WEND
FOR x = 1 to i
    PRINT Sum(i)
NEXT x

代码很简单:

REM how to enter data and add to array
DIM i AS INTEGER
CLS
DIM Sum(16384) AS STRING
PRINT "enter xxx to quit."
DO
    INPUT "Enter name: ", nam$
    INPUT "Enter age: ", age$
    IF nam$ = "xxx" THEN EXIT DO
    i = i + 1
    Sum(i) = nam$ + " " + age$
LOOP
FOR x = 1 TO i
    PRINT Sum(x)
NEXT x

相同的代码仅使用 while:

REM how to enter data and add to array using only while
DIM i AS INTEGER
CLS
DIM Sum(16384) AS STRING
PRINT "enter xxx to quit."
WHILE z = 0
    INPUT "Enter name: ", nam$
    INPUT "Enter age: ", age$
    IF nam$ = "xxx" THEN
        z = -1
    ELSE
        i = i + 1
        Sum(i) = nam$ + " " + age$
    END IF
WEND
FOR x = 1 TO i
    PRINT Sum(x)
NEXT x

两个数组的示例代码:

REM how to enter data and add to two arrays using only while
DIM Sum1(8192) AS STRING, Sum2(8192) AS INTEGER ' adjusted for qb45
CLS
PRINT "Press Enter to quit."
WHILE z = 0
    INPUT "Enter name?", nam$
    IF nam$ = "" THEN
        z = -1
    ELSE
        INPUT "Enter age?", age%
        i = i + 1
        Sum1(i) = nam$
        Sum2(i) = age%
    END IF
WEND
FOR x = 1 TO i
    PRINT "Name: "; Sum1(x); " Age:"; Sum2(x)
NEXT x