構造化プログラミングでは,基本,禁じ手のgoto文
最近は見ることも極端に減って
昔は,オイラも,まったく使わなかったんですわ>C言語
でもねぇ...
多重ループの完全ループアウトのとき
if文やら使って構造を作るより,条件成り立ったら,gotoで飛ばしてしまえ!な派に改宗したり(爆
いや,ループ構造が汚くなって
かえって不具合呼ぶことが多くなったもんでなぁ...
して,Delphiでのgoto文
ちょいと特殊で
gotoのジャンプ先を,LABEL命令であらかじめ定義しないといけなかったり
こんな感じ
DELPHI:
- //**********************************************
- //受信バッファの中身を検索してEOT(0x04)があるか,返す
- //
- //**********************************************
- function TSocketIO.IsReceiveDataEnd: Boolean;
- var
- i : Integer;
- j : Integer;
- st : string;
- label IsReceiveDataEnd_J1; //<---これがいる
- begin
- result := false;
- for i := 0 to FReceiveBuf.Count - 1 do
- begin
- st := FReceiveBuf[i];
- for j := 1 to Length(st) do
- begin
- if st[j] = char($04) then
- begin
- result := true;
- goto IsReceiveDataEnd_J1;
- end;
- end;
- end;
- IsReceiveDataEnd_J1:
- end;
まぁ,goto文,多用すると,スパゲッティプログラム(死語)の元なんで
エッセンス程度に使用するのがよろしいか,と



