線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:8317
推到 Plurk!
推到 Facebook!

Break 、Exit使用注意些什麼,有什麼區別。

尚未結案
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-10 11:06:30 IP:218.80.xxx.xxx 未訂閱
Break、Exit認識比較模糊,請幫忙澄清。 ========================= 語言是工具,最重要是如何解決問題。
minjiu
中階會員


發表:27
回覆:119
積分:69
註冊:2002-06-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-10 11:30:35 IP:61.59.xxx.xxx 未訂閱
簡單來說Break是用來跳離迴圈(如for to/while do/Repeat Until)... 而Exit是用來跳離程序用的(如procedure/function)...
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-10 11:58:04 IP:218.80.xxx.xxx 未訂閱
如果要在離迴圈(如for to/while do/Repeat Until)...中跳出procedure,應該如何寫呢? ========================= 語言是工具,最重要是如何解決問題。
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-10 12:18:37 IP:63.84.xxx.xxx 未訂閱
您好﹗    一般來講﹐相關的函數除了Break和Exit之外﹐還有Continue﹐字面上的解釋如下﹕ Break: 僅跳出迴圈﹐按順序執行迴圈之后的程式 Continue: 省略某個符合條件的孌數 Exit: 跳出迴圈﹐并結束當前的程式    我們舉個例子來講﹐在程式中分別使用此三個函數后取得的結果﹕
Var
  I : Integer;
begin
  For I := 1 to 5 do
    if I = 3 then
      begin
        Break; //參考結果一
        Continue; //參考結果二
        Exit; //參考結果三
        ShowMessage(IntToStr(I));
      end;
  ShowMessage('結束');
end;
結果一﹕出現1, 2, 結束 的Message 結果二﹕出現1, 2, 4, 5, 結束 的Message 結果三﹕出現1, 2 的Message 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
cmj
高階會員


發表:15
回覆:242
積分:226
註冊:2002-06-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-10 17:46:11 IP:211.76.xxx.xxx 未訂閱
迴圈.. 
  begin
    if ... then Exit; //直接離開 Procedure or Function 
                      //不執行迴圈下程式
  end;
.
.
.    迴圈.. 
  begin
    if ... then Break; //離開迴圈,執行迴圈下程式
  end;
.
.
.     所以在程序中碰到Exit直接離開程序
 在迴圈中到Break就跳到迴圈下面程式
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-13 08:54:11 IP:203.222.xxx.xxx 未訂閱
你們都忘了還有個 abort 與有 try expect end or try finally end .... 時該指令的影響範圍
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-13 17:16:50 IP:218.80.xxx.xxx 未訂閱
syntax: 您好。    對不起,雖然已經結案,但是想繼續討論。 下面是我的一段程式,其中使用Exit,但是出現Compile不過的問題,請指點一下,謝謝。  
 
type
  PnetResourceArr = ^TNetResource;
procedure TMainForm.GetClientUserList(sServerName: String;UserList: TListItems);
Var
  NetResource : TNetResource;
  Buf: Pointer;
  Count,BufSize,Res: DWord;
  Ind: Integer;
  lphEnum: THandle;
  Temp: PNetResourceArr;
        item: TListItem;
Begin
  UserList.Clear;
  Buf := nil;
  GetMem(Buf, 8192);
  Try
    FillChar(NetResource, SizeOf(NetResource), 0);
    NetResource.lpRemoteName := @sServerName[1];
    NetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER;
    NetResource.dwUsage := RESOURCEUSAGE_CONTAINER;
    NetResource.dwScope := RESOURCETYPE_DISK;
    Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONTAINER, @NetResource,lphEnum);
    if Res <> 0 then Exit;               //這裡Compile不能通過,幫忙說明原因好嗎?
    While True Do
    Begin
      Count := $FFFFFFFF;
      BufSize := 8192;
      Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);
      If Res = ERROR_NO_MORE_ITEMS Then Exit;
      If (Res <> 0) then Exit;
      Temp := PNetResourceArr(Buf);
      For Ind := 0 to Count - 1 do
      Begin
        Item := TListItem.Create(UserList);
        Item.Caption := Temp^.lpRemoteName   2;            Inc(Temp);
      End;
    End;
    Res := WNetCloseEnum(lphEnum);
    If Res <> 0 Then Raise Exception(Res);
  Finally
    FreeMem(Buf);
  End;
 
========================= 語言是工具,最重要是如何解決問題。
系統時間:2024-05-03 7:54:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!