、以下に提示されていると私は現在、ユーザーの入力からブール値をテストするための運動に取り組んでいます:しかしで、それが指定した文字列からの入力を受け取るまで値を求めてループを維持することが期待されてパスカルブール戻り値?
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として割り当てられ、関数を終了します。
ご協力いただければ幸いです。
'exit = trueまたはexit = false;' exitは 'true'または' false'であればループ終了を意味しません。 ? –
ええ、確かに、上記のケースを満たす前にループが終了するのを避けるためにとにかく、私はブール値は常にデフォルトの割り当て値を持つと考えています... –
'choice = 'yes'またはchoice = 'y' = 't'またはchoice = 'true'またはchoice = 'no'またはchoice = 'n'またはchoice = 'f'またはchoice = 'false';は時間がかかる可能性があります。 –