我阅读一段代码有类似如下语句的一段,请解答一下它的执行顺序j:=1
for i:=1 to 8 do
begin 
        …A…
    case j of 
    1:
        begin
            …B…
            j:=3;
        end;
    2:
        begin
            …C…
            j:=1;
        end;
    3:
        begin
            …D…
            j:=4;
        end;
    4:
        begin
            …E…
        end;
    5:
        begin
            …F… 
            j:=2      
        end;
    6:
        begin
            …G…
        end;
end;

解决方案 »

  1.   

    用动脑筋吗?输出到Memo慢慢看呗~~…A…
    …B…
    …A…
    …D…
    …A…
    …E…
    …A…
    …E…
    …A…
    …E…
    …A…
    …E…
    …A…
    …E…
    …A…
    …E…
      

  2.   

    这个问题阿,我没有试!但是我感觉应该输出的是3,我觉得好像是case到1的时候执行其后的代码,然后赋值3以后,也不应该执行下面的了吧,应该直接就退出这个判断了。现丑了阿。
      

  3.   

    var
      J , I : Integer;
    begin
    j:=1          ;
      for i:=1 to 8 do
      begin
           Memo1.Lines.Add('0  …A…');
        case j of
        1:
            begin
                Memo1.Lines.Add(IntToStr(I) + '…B…');
                j:=3;
            end;
        2:
            begin
                Memo1.Lines.Add(IntToStr(I) + '…C…');
                j:=1;
            end;
        3:
            begin
                Memo1.Lines.Add(IntToStr(I) + '…D…');
                j:=4;
            end;
        4:
            begin
               Memo1.Lines.Add(IntToStr(I) + ' …E…');
            end;
        5:
            begin
                Memo1.Lines.Add(IntToStr(I) + '…F…');
                j:=2      
            end;
        6:
            begin
                Memo1.Lines.Add(IntToStr(I) + '…G…');
            end;
      end;
      end;
      

  4.   

    有道理  ;)谢谢
    那段代码太复杂了,条件也比这多,我看的有些头大
    而且写程序人的解释和你不同ABDEAEAEAEAEAEAEAE
      

  5.   

    我晕,不知道你的ABCDE这些是什么阿,真是不明白阿,我把他们去了试了一下,结果是4阿,不好意思,
      

  6.   

    0  …A…
    1…B…
    0  …A…
    2…D…
    0  …A…
    3 …E…
    0  …A…
    4 …E…
    0  …A…
    5 …E…
    0  …A…
    6 …E…
    0  …A…
    7 …E…
    0  …A…
    8 …E…
      

  7.   

    不好意思我又来发言了,这个程序其实很有意思的,我忽略了for循环,哈哈哈
      

  8.   

    0  …A…
    1…B…
    0  …A…
    2…D…
    0  …A…
    3 …E…
    0  …A…
    4 …E…
    0  …A…
    5 …E…
    0  …A…
    6 …E…
    0  …A…
    7 …E…
    0  …A…
    8 …E…
    我用上面的方法试试,呵呵,蹭点分!