如何重复...直到具有多个退出参数的结构?

时间:2014-01-28 09:41:58

标签: delphi-6

所以我的代码看起来像这样

**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)有关;一部分。

1 个答案:

答案 0 :(得分:0)

您正在将MainMenuChoice的值与OR创建的值进行比较,将三个测试值的位组合在一起,产生11个。所以您的代码实际上是这样做的:

Until MainMenuChoice = 11; 

要再次比较三个单独的值,请使用Set代替:

Until MainMenuChoice in [1, 2, 9];

但是,假设MainMenuChoiceChar,那么Readln()将返回用户实际键入的字符,而不是其数字值,因此请改用:

Until MainMenuChoice in ['1', '2', '9'];