所以我的代码看起来像这样
**Procedure DisplayMenu;
Begin
Repeat
Writeln('Hello, ' ,PlayerName);
Writeln('1. Be Guesser');
Writeln('2. Let The Computer Guess');
Writeln('9. Quit');
Readln(MainMenuChoice);
*Until MainMenuChoice=(1) or (2) or (9);*
End; //Procedure//**
如果有人能向我解释我哪里出错了,我将非常感激。
我认为错误与Until MainMenuChoice =(1)或(2)或(9)有关;一部分。
答案 0 :(得分:0)
您正在将MainMenuChoice
的值与OR
创建的值进行比较,将三个测试值的位组合在一起,产生11个。所以您的代码实际上是这样做的:
Until MainMenuChoice = 11;
要再次比较三个单独的值,请使用Set代替:
Until MainMenuChoice in [1, 2, 9];
但是,假设MainMenuChoice
是Char
,那么Readln()
将返回用户实际键入的字符,而不是其数字值,因此请改用:
Until MainMenuChoice in ['1', '2', '9'];