期望语句但函数在我的函数代码

时间:2018-06-14 10:55:10

标签: delphi pascal

下面是我创建的代码模块,用于验证用户输入是否在一个范围之间,但是这个错误一直出现在它下面'声明预期,但功能发现',任何人的想法?非常感谢

function get_choice(var Options: integer): integer;
      var
      choice: integer;

      begin
        while (true) do
          begin
              write('choose option 1 to', Options);

              try
                readln(choice);
                if (choice>=1) and (choice <=Options) then
                    get_choice := choice
                else
                    write('invalid range');
              except
                 write('not a number');
          end;
      end;

2 个答案:

答案 0 :(得分:5)

正如Sharam已经说过的那样,你错过了end区块的try..except..end。尽管如此,我想我可以通过一些提示来提高答案,以帮助在将来避免这种情况。

  • 将您的begin .. end块保留在同一列上。try..except..endtry..finally..endrepeat..until阻止相同的列。
  • 使用IDE的选项将begin和block连接起来。 &#34;结构突出。查看附带的屏幕截图。

Structural highlighting in action

Structural highlighting option

答案 1 :(得分:4)

您错过了end

              try
                readln(choice);
                if (choice>=1) and (choice <=Options) then
                    get_choice := choice
                else
                    write('invalid range');
              except
                 write('not a number');
              end;
         end
      end;

尝试try..except阻止必须有自己的结束。