请问case语句,不能使用const变量,有什么好办法解决吗?
Case i of
  MYDEF1:...
  MYDEF2:....编译时提示错误:Constant expression expected常量太多了,用if语句要写太多,大家有什么好办法吗?

解决方案 »

  1.   

    你可以把你的常量写进一个枚举里面,然后再CASE者个枚举就可以了~
    例如:
    var
        i :Integer;
        Days:(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);
    begin
      i:=0;
      case i of
         0    :  Days:=Sunday;
         1    :  Days:=Monday;
         2    :  Days:=Tuesday;
         3    :  Days:=Wednesday;
         4    :  Days:=Thursday;
         5    :  Days:=Friday;
         6    :  Days:=Saturday;
      end;
      if Days= Sunday then
      Writeln('Sunday');
      Readln;
    end.