代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
  AA:array[1..4] of Integer;
  i,j,m,n:integer;
  i1,i2,i3,i4,i5,i6,i0:integer;
  j1,j2,j3,j4,j5,j6,j0:integer;
  m1,m2,m3,m4,m5,m0:integer;
  n1,n2,n3,n4,n5,n0:integer;
begin    Randomize;
    AA[1]:=Random(7);    AA[2]:=Random(7);    AA[3]:=Random(6);    AA[4]:=Random(6);  case AA[1] of
    0:inc(i0);
    1:inc(i1);
    2:inc(i2);
    3:inc(i3);
    4:inc(i4);
    5:inc(i5);
    6:inc(i6);
  end;  case AA[2] of
    0:inc(j0);
    1:inc(j1);
    2:inc(j2);
    3:inc(j3);
    4:inc(j4);
    5:inc(j5);
    6:inc(j6);
  end;  case AA[3] of
    0:inc(m0);
    1:inc(m1);
    2:inc(m2);
    3:inc(m3);
    4:inc(m4);
    5:inc(m5);  end;  case AA[4] of
    0:inc(n0);
    1:inc(n1);
    2:inc(n2);
    3:inc(n3);
    4:inc(n4);
    5:inc(n5);  end;end;发现这些case语句完全没有用!为何会这样?而那些变量也完全没有初始化为0,不是说DELPHI自动初始化的吗。

解决方案 »

  1.   

    那有没有什么办法,使这些CASE语句可以执行?
      

  2.   

    错了.不是局部,全局的问题.而是DELPHI的编译起把你的CODE优化了.因为你的变量没有被其他代码使用.
      比如,你想使i1起作用,你在下面加句:
      showmessage(inttostr(i1));
     DELPHI,就会编译你的代码,使他发生作用了.
      

  3.   

    发现这些case语句完全没有用!为何会这样?而那些变量也完全没有初始化为0,不是说DELPHI自动初始化的吗。
    呵呵,版主,俺回答的是摟主的第二個問題,俺知道代碼優化,可是沒想到delphi的優化能力這麽強!inc(i1)這樣的它都能跳過去!
    厲害!
      

  4.   

    都說delphi的編譯器優秀,現在有了進一步的認識!