全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5775
推到 Plurk!
推到 Facebook!

For 迴圈

尚未結案
kilo_amd
一般會員


發表:15
回覆:13
積分:10
註冊:2003-01-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-17 21:31:26 IP:61.59.xxx.xxx 未訂閱
想請問一下 在Delphi中的for迴圈 它的遞增/減的數值 只能為1嗎?
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-17 23:04:17 IP:218.94.xxx.xxx 未訂閱
好像只能为1! 格式如下: for counter := initialValue to finalValue do statement or for counter := initialValue downto finalValue do statement 如果想数值变化由自己定,您就用 while 循环来实现 發表人 - sos_admin 於 2004/07/17 23:07:12
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-18 18:32:46 IP:61.62.xxx.xxx 未訂閱
在 for 迴圈裡  加上一行判斷式 以 if i mod 2=0 來判斷,表示step 2 以 if i mod 3=0 來判斷,表示step 3 試試看吧    
jumo
一般會員


發表:33
回覆:65
積分:24
註冊:2002-04-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-18 19:19:44 IP:211.20.xxx.xxx 未訂閱
要做到遞增/減的數值 <> 1, 您可以在迴圈內自行處理, 方式如下
var i, j: Integer;
begin
  j := 2; // 自行定義的變量
  for i:=1 to 10 do begin
    showmessage(i * j);
  end;
end;
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-19 11:23:15 IP:211.162.xxx.xxx 未訂閱
不好意思,插個花: 在Object Pascal中,可以使用for to/down to dowhile...dorepeat...until三種方式來實現迴圈控制. 先來看看For:

var
  I: Integer;
begin
  for I := 0 to 10 do   
    DoSomething;
end;
I從0遞增到10,DoSomething被執行了11次,或者用for I := 10 downto 0 do,I從10遞減到0,DoSomething也同樣被執行了11次. 使用For方式要注意的是:迴圈變數的步長(step)是固定爲1的,無法改變;不能在迴圈塊中用代碼改變迴圈變數的值 那我們再來看看while:

var
  I: Integer;
begin
  I := 0;
  while I <= 10 do   //等價於for I := 0 to 10 do
  begin
    DoSomething;
    Inc(I);
  end;
end;
while方式的特點是可以自己控制迴圈因數的變化,和for相比,靈活性更大 而repeat是從while演化而來的.while首先判斷條件是否成立再執行,而repeat是首先執行,再判斷條件是否成立:

var
  I: Integer;
begin
  I := 0;
  repeat          //等價於while I <= 10 do
    DoSomething;
    Inc(I);
  until I = 10;
end;
終上所述,晚輩覺得Object Pascal 中的for迴圈語句其靈活性比其他語言小(它不能指定1之外的步長(step),如果是是在BCB中用for(int i=0; i <= 10; i =step)就可以表達出來了),不過簡單也容易理解。如果需判斷的條件比較複雜,或想自定義計數器,你可以用while語句或 repeat 語句,而不是for迴圈語句。 那要如何在while或repeat中使用自定義的步長(step)呢?不妨參考一下下面的code:

var
  I: Integer;
begin
  I := 0;
  while I <= 10 do
    I := I   2;         //這裏假設步長(step)爲2
    DoSomething;
  end;
end;
晚輩也是略知Object Pacal皮毛,至今仍不得其博大精深的要領,所以我上面的描述有謬誤的地方,還請站內各位前輩斧正,謝謝!!! < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获?
系統時間:2024-05-17 4:31:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!