<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇開發語言培訓專區C++語言開發 → C++/Object Pascal中循環結構的一點差異及討論


      共有5942人關注過本帖樹形打印

    主題:C++/Object Pascal中循環結構的一點差異及討論

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    C++/Object Pascal中循環結構的一點差異及討論  發帖心情 Post By:2010-12-10 14:15:51

    雖然在所有的編程語言之中,程序的執行都無非是順序、分支和循環等幾種結構,比如說,C中的if…else,switch…case,while和do…while, 以及Pascal中的if…then…else,case…of,while…do,repeat…until,幾乎就是一一對應的關系,只不過語法上有小小的差異而已。這樣的相似性使得我們在掌握一門語言之后,再學習其他語言就容易得多了。然而,語言之間的不同是細微而瑣碎的,如果不注意這些差別的話,它們遲早會從不知哪個角落跳出來,讓程序員陷入debug的噩夢。


    讓我們來看一個例子。我們知道在一般的循環結構中,fo循環和while循環是可以轉換的,例如,在Pascal中

    for I:=StartValue to EndValue do …;

    可以轉換成相應的while 循環:

    I:=StartValue;

    while I<=EndValue do begin

       …;

       Inc(I);

    end;

    看起來,這兩種循環是完全一樣的。別忙,真的完全一樣嗎?下面是一段Delphi代碼,你可以先心算一下,看得出來的結果應該是多少:

    procedure TForm1.FormCreate(Sender: TObject);

    var

      i, j : integer;

      index : integer;

      str : string;

    begin

      i := 0;

      j := 3;

      for index:=0 to j do begin

        Inc(i);

        if j<5 then Inc(j);

      end;

      str := IntToStr(i);

     

      i := 0;

      j := 3;

      index := 0;

      while index<=j do begin

        Inc(i);

        if (j<5) then Inc(j);


    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    C++/Object Pascal中循環結構的一點差異及討論








    簽名