КОБОЛ 85 да или нет подтверждение ввода

Я просто хочу знать, как убедиться, что введенный пользователем ввод - это только Y, y, N или n.

Я использовал этот код:

01 ANSWER                PIC X.
    88 VALID-ANSWER      VALUE "Y" "y" "N" "n".

Но все равно это не работает. Пользователь по-прежнему может печатать другие символы. Любая помощь будет оценена. Заранее спасибо.

1 ответ

Я решаю это с помощью цикла выполнения:

на РАБОЧЕМ ХРАНЕНИИ:
    01 ОТВЕТИТЬ ПОС. X.

в ПРОЦЕДУРЕ:
    ВЫПОЛНИТЬ ДО ОТВЕТА = "y" ИЛИ = "Y" ИЛИ = "n" ИЛИ = "N"
       ДИСПЛЕЙ "Вопрос (г / г / н / н):"
       ПЕРЕМЕСТИТЬ ПРОСТРАНСТВО, ЧТОБЫ ОТВЕТИТЬ
       ПРИНЯТЬ ОТВЕТ
    END-ВЫПОЛНИТЬ.
    ЕСЛИ ОТВЕТ = "y" ИЛИ "Y"
       сделай что-нибудь
    ELSE
       сделай что-то-другое
    END-IF

Надеюсь, это поможет.

Вы просто не можете ограничить пользовательский ввод, кроме прописных. Что вы можете сделать, это:

На рабочем-хранение:

01 ANSWER           PIC X.

При процедуре:

ACCEPT ANSWER CONTROL "UPPER".

Это будет гарантировать, что независимо от того, что пользователь вводит, он в верхнем регистре. Тогда вы проверяете только "Y":

IF ANSWER = "Y"
  (do something)
ELSE
  (do something)
END-IF

Я надеюсь, что это помогает.

Другие вопросы по тегам