Q&A

  • procedure나 function에서 임의의 지점에서 return하는 방법...
정말 초보적인 질문인데요...



procedure나 function에서 임의의 위치에서 수행을 멈추고...



그 procedure나 function을 호출한 지점으로 return하는 방법이 있나요...?



C언어에서 return하는거 말이죠...



return하는 예약어가 있는지...아니면...그러고 싶을때...어떤식으로 해야하는지...



좀 갈켜주세요...책 같은데도 그 내용은 없군요...



델파이 시작한지 얼마한된 초보가...^^

3  COMMENTS
  • Profile
    하얀까마귀 2000.03.16 00:38
    안녕하세요 하얀까마귀 입니다.



    c하고는 문법이 조금 다르죠...



    c를 windows c++을 하셧는지는 모르겠지만...



    c에서 return하고 비슷한게 result입니다.. 단지 다른건 c에서 return하면 프로시져(파스칼에



    서는 function이죠? 그렇지 않은게 다르죠... )



    그냥 실행을 계속합니다. 그리고 exit를 만났을때 또는 함수의 실행이 끝이 났을때 실제로



    제어가 넘어가게 됩니다...



    procedure 는 리턴값이 없으니까 result를 써주시면 에러가 생기겠죠???



    그리고 c에서도 있듯이 주소를 파라메터로 넘겨서 이걸 리턴값 대신 사용해도 되고



    변수일때는



    음 간단하게 예를들면...







    procedure aaa (var a:string; var b :integer; c :string; const d :string);

    begin

    a := '5';

    b := 7;

    c := '55';

    //d := '44'; <-- 요건 에러가 나요.. 컴파일이 안되죠

    end;



    여기서 a,b는 프로시져 내부에서 변수의 값을 사용하고 변경을하면 그값이 넘어가게 됩니다.

    a := '3';

    b := 4;

    c := '11';

    d := '11';

    aaa(a,b,c,d);

    이렇게 부른뒤의 값은 a,b는 변하지만 c는 55가 아닌 11입니다.. 아시겠죠??? c를 하셧으니



    이런건 기본이지 뭐.....



    그럼 즐거운시간 되세요..



    - 하얀까마귀 -









    topsman wrote:

    > 정말 초보적인 질문인데요...

    >

    > procedure나 function에서 임의의 위치에서 수행을 멈추고...

    >

    > 그 procedure나 function을 호출한 지점으로 return하는 방법이 있나요...?

    >

    > C언어에서 return하는거 말이죠...

    >

    > return하는 예약어가 있는지...아니면...그러고 싶을때...어떤식으로 해야하는지...

    >

    > 좀 갈켜주세요...책 같은데도 그 내용은 없군요...

    >

    > 델파이 시작한지 얼마한된 초보가...^^

  • Profile
    백록화 2000.03.16 00:22
    yo~ ^^*^~



    exit나 break 같은 제어문을 적절히 사용하시면 됩니다.

    exit는 그냥 중단하는것이고.....

    break는 한개의 반복문 밖으로 제어를 옮겨줍니다......



    function test(cstr: string): string;

    var i,j: integer;

    begin

    for i:= 0 to 2000 do begin

    for j:= 0 to 3000 do begin

    if j=300 then

    break; // j가 300일때 for j...문을 탈출한다.

    end;

    if j = 300 then begin

    result:= 'j는 300임돠';

    exit; // 리턴값 'j는 300임돠'를가지고 함수를 종료한다.

    end;

    end;

    end;



    ^^;; 초간편 울트라 트릴러한 예제 였슴돠~

    프로시져는 리턴값이 없으니깐 그냥 break 와 exit를 적절히 쓰면 되겟죠...



    그럼...



    내일도 어제처럼....

    always hard and heavy time, bang your head...

    written by crazy 'ripper' rocka.

    topsman wrote:

    > 정말 초보적인 질문인데요...

    >

    > procedure나 function에서 임의의 위치에서 수행을 멈추고...

    >

    > 그 procedure나 function을 호출한 지점으로 return하는 방법이 있나요...?

    >

    > C언어에서 return하는거 말이죠...

    >

    > return하는 예약어가 있는지...아니면...그러고 싶을때...어떤식으로 해야하는지...

    >

    > 좀 갈켜주세요...책 같은데도 그 내용은 없군요...

    >

    > 델파이 시작한지 얼마한된 초보가...^^

  • Profile
    강인규 2000.03.15 22:39
    우선 저는 C는 못합니다. 그점 염두하시고 보아주시기 바랍니다.



    return이 어떤 형태로 작업열로 복귀하는 지는 모르겠지만 델파이에는 exit라는 명령과 break명령 등이 있습니다.



    exit는 명령이 실행되면 해당 프로시져의 작업을 멈추고 빠져나갑니다. 그 아래의 명령들은 무시하구요. 그리구 break는 루프문에서 만일 복수개의 루프가 존재한다면 해당 한개의 루프만을 빠져나갑니다. 그리구 goto명령이 있는데 뭐 프로그래머의 철칙 "goto는 쓰지마라."에 따라 저 또한 쓸 줄은 모릅니다.



    뭐 저 잘은 모르겠지만 원하시는 명령어는 exit인것 같군요.



    topsman wrote:

    > 정말 초보적인 질문인데요...

    >

    > procedure나 function에서 임의의 위치에서 수행을 멈추고...

    >

    > 그 procedure나 function을 호출한 지점으로 return하는 방법이 있나요...?

    >

    > C언어에서 return하는거 말이죠...

    >

    > return하는 예약어가 있는지...아니면...그러고 싶을때...어떤식으로 해야하는지...

    >

    > 좀 갈켜주세요...책 같은데도 그 내용은 없군요...

    >

    > 델파이 시작한지 얼마한된 초보가...^^

    • 오종환
    • 2000.03.16 03:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.03.16 03:10
      오종환 wrote: > 저는 델파이를 막 접한 초보입니다 > > 제가 원하는것은 SpeedButton으로 기존의 메뉴...
    • 빡수홍
      2000.03.16 03:53
      J Wraw wrote: > MSSQL6.5를 쓰고있는데 DB connection시 UserId혹은 Password가 잘못입력시 > EDBEEngi...
    • 최용일
      2000.03.16 03:11
      메소드가 아니라 일반 프로시저나 펑션에서 호출하는 방법을 묻는 것입니까? 뭐 여러가지 방법이 있겠지만...
    • 강동길
    • 2000.03.16 02:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.16 02:11
      Calulated Field를 사용하세요.. Table을 더블클릭하시고 생긴 윈도우에서 오른쪽 마우스 클릭.. Add All...
    • 김진석
    • 2000.03.16 01:55
    • 2 COMMENTS
    • /
    • 0 LIKES
    • blueSky
      2000.03.16 02:51
      김진석 wrote: > 프로그램을 짜다 보니깐.... | 신 문| > ...
    • 조피디
      2000.03.16 02:00
      김진석 wrote: > 프로그램을 짜다 보니깐.... | 신 문| > ...
    • 초보
    • 2000.03.16 01:44
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.16 02:04
      천리안 프로그래머 포럼에서 주어왔습니다.. From 류.. --------- unit Link; interface ...
    • 초보
      2000.03.17 10:27
      류종택님 답변 감사드립니다만. 답변 주신 소스를 보고 어떻게 해야할지 막막하네요 복사해서 실행해도 ...
    • 모질이
      2000.07.31 22:24
      바탕화면에 단축아이콘을 만들려면 인스톨쉴드에서 간단하게 할수가 있거덜랑요. specify folders and ic...
    • 최용일
      2000.03.16 14:49
      한델의 강좌란을 보세요...
    • 하윤철
      2000.04.12 21:40
      답을 얻으셨나요? 꽤 늦은 답입니다만.... 변환 작업 후에 프로그램 종료시점까지 Excell 인스턴스종료로...
    • 최용일
      2000.03.16 01:28
      아마도 열기 전에 저장을 안하신것 같은데... 대강 코드를 보니까 프로그램을 종료할 때 만들어진 엑셀...
    • 한현정
      2000.03.16 02:08
      아래 소스는 컴포넌트의 소스입니다. 호출할 때는 아래와 같이 하구요 MsgBar1.ShowMessage('excel...
    • 최용일
      2000.03.16 05:01
      제가 김영대님의 TGridXLS컴포넌트를 써보지 못해서 제대로 답변을 못드리겠군요. 김영대님에게 메일을 보...
    • topsman
    • 2000.03.16 00:35
    • 2 COMMENTS
    • /
    • 0 LIKES
    • blueSky
      2000.03.16 01:17
      topsman wrote: > 현재 사용자가 사용하고 있는 OS가 어떤건지 알려면... > > 어떤 함수를 써서...정보...
    • 하얀까마귀
      2000.03.16 01:03
      안녕하세요 하얀까마귀 입니다. 그런 정보는 레지스트리에 있어요... HKEY_LOCAL_MACHINE SoftwareM...
    • 하얀까마귀
      2000.03.16 00:53
      안녕하세요 하얀까마귀 입니다. 이건 전에 제가 비슷한 내용을 올린것 같은데.... 어디 올렸지???? ...
    • 문영봉
    • 2000.03.15 23:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.16 00:08
      현재 위치에서 'f1'이라는 키를 오픈하는 것입니다.. 뒤에오는 불린은 해당 키가 없을 때 생성을 할 것인...
    • 최용일
      2000.03.16 00:03
      OpenKey는 레지스트리에 있는 키값을 열때 사용합니다. TRegistry서 값을 읽거나 쓰는 함수(TRegistry.Rea...
    • hjcho
    • 2000.03.15 23:08
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.15 23:54
      동적으로 링크하는 방법도 있습니다. LoadLibrary함수를 DLL을 적재하시면 됩니다. 성공적으로 적재되었...
    • 윤정선
      2000.03.17 01:25
      자세한 설명을 부탁드려도 되는지요. 저는 LoadLibrary와 FreeLibrary를 이용해서 해볼려고 했는데 안되...
    • 최용일
      2000.03.17 06:14
      안녕하세요. 최용일입니다. 먼저 헬프를 사용하는 방법부터 알려드리지요. GetProcAddress과 같은 Windo...
    • neocity
    • 2000.03.15 22:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 화랑
      2000.03.16 02:59
      neocity wrote: > 다중 채팅을 만들었는데. > 여러 채팅 프로그램처럼 여러개의 방을 만들려구 하는데 >...
    • topsman
    • 2000.03.15 22:27
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.03.16 00:38
      안녕하세요 하얀까마귀 입니다. c하고는 문법이 조금 다르죠... c를 windows c++을 하셧는지는 모르...
    • 백록화
      2000.03.16 00:22
      yo~ ^^*^~ exit나 break 같은 제어문을 적절히 사용하시면 됩니다. exit는 그냥 중단하는것이고..... ...
    • 강인규
      2000.03.15 22:39
      우선 저는 C는 못합니다. 그점 염두하시고 보아주시기 바랍니다. return이 어떤 형태로 작업열로 복귀하...
    • blueSky
      2000.03.15 22:24
      이수정 wrote: > 다른데 자료실에서.. 컴포넌트 파일이라며.. > > .pas 파일 두개를 받았는데.. > ...