я в настоящее время работает над осуществлением тестирования логическое значение из пользовательского ввода, так как будет представлен ниже:Pascal Boolean возвращаемое значение?
function ReadBoolean(prompt: String): Boolean;
var
choice: String;
exit: boolean;
begin
repeat
begin
WriteLn(prompt);
ReadLn(choice);
case choice of
'yes','y','t','true': exit := true;
'no','n','f','false': exit := false;
else
WriteLn('Not a boolean input. Enter again: ');
end;
end;
until exit=true or exit=false;
result := exit;
end;
Ожидается, что держать зацикливание просить значение до тех пор, пока не получит входной сигнал от указанной строки, однако при моя первая попытка, когда я пытаюсь ввести 'fred', логическая переменная автоматически назначается как TRUE и выходит из функции.
Любая помощь будет очень признательна.
'до выхода = true или exit = false;' это не означает конец цикла, независимо от того, является ли 'exit'' истинным' или 'false' ? –
Да, действительно, есть все равно, чтобы остановить цикл от выхода до того, как он встретит эти случаи выше, потому что лично я считаю, что логическое значение всегда имеет назначенное по умолчанию значение ... –
'до выбора = 'да' или choice = 'y' или выбор = 't' или choice = 'true' или choice = 'no' или choice = 'n' или choice = 'f' или choice = 'false'; 'должен работать, хотя он может быть слишком длинным. –