Q&A

  • 똑같은거 같은데 왜 에러가 나조?
함수에서 인자를 받는건데요.



procedure aRor(ar: array of integer;a: integer);
begin
....
  ①      if a in ar then       ----> 이렇게 하면 에러가 나구요

  ②      if a in [4,6] then  -----> 이렇게 하면 에러가 안나요.

end;

함수 호출할때는

aRor([4,6],4); 이렇게 할건데,,,

  ① 방식으로 사용해야하는데, 이상하게 함수안에서 ②처럼 쓰면 에러없는데
  ① 처럼쓰면 에러가 나는군요.
  에러메시지는 Operator not applicable to this operand type 이군요.

3  COMMENTS
  • Profile
    최용일 2003.03.25 23:08
    안녕하세요. 최용일입니다.

    두개가 다른데요...

    1번은 in은 집합연산자인데 ar은 집합이 아니라 동적배열이죠... 2번의 [4,6]은 집합이니까 에러가 안나구요...

    aRor([4,6],4); <<= 여기에서의 [4, 6]은 집합이 아니라 Open Array Parameter라고 동적배열입니다. 당연히 in은 쓰지 못하죠...

    함수선언부에서 ar: array of Integer라고 되어 있네요...

    ^^ 항상 즐코하세요...

  • Profile
    이충효 2003.03.26 00:39
    답변감사합니다.
    그럼, 어떻게 고쳐야 에러가 나지않고 원하는 데로 만들수 있죠?

    배열과 값1을 넘겨서 값1이 배열에 속하는가를 확인하는 구문을 만들껀데
    for문과 같은 반복문을 사용하지 않고 하려는데,,

  • Profile
    최용일 2003.03.26 00:50
    안녕하세요. 최용일입니다.

    방법이 없네요...

    왜 for문을 안쓰실려구 하는지... 속도상의 문제는 전혀없을건데...

    ^^ 항상 즐코하세요...