Как мне исправить эту проблему с помощью цикла While и For? - PullRequest
1 голос
/ 28 марта 2019

Я пишу программу на QBasic, которая запрашивает людей имена и возраст бесконечное количество раз, пока я не нажму xxx , и затем программа напечатает все введенные имена и возраст:

Я продолжаю получать Нули вместо имен и возрастов , как бы я ни старался, я полностью застрял, ниже мой код:

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

Ответы [ 3 ]

0 голосов
/ 28 марта 2019

Тот же код только с использованием 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
0 голосов
/ 28 марта 2019

Пример кода для двух массивов:

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
0 голосов
/ 28 марта 2019

Код довольно прост:

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
...