Q&A

  • if 절에 IN을 사용할때..
// ab_x = 100;
// ab_y = 200;


    i := 2;
    k := 0;

    if (ab_x IN [i*148 .. (i+1)*147]) AND (ab_y IN [k*221..(k+1)*220]) then
    begin
             Showmessage('메세지내용');
    end;
    일때는 에러는 안나지만, ab_x값이 100 인데
    if 문을 타서 메세지를 뿌려줌(범위가 아닌데 -_-;;)


    if (ab_x IN [296 .. (i+1)*147]) AND (ab_y IN [k*221..(k+1)*220]) then
    begin
             Showmessage('메세지내용');
    end;
   일때는
   Constant expression violates subrange bounds 라는 에러 메세지가 나옴.

   위 2개의 차이점이 먼지 궁금하구요.

   if i IN [x..y] then
  이라는 의미가 i 가 x 와 y 범위 사이에 값일때라는 문장이 아닌가요?

  초보라 궁금한것이 많네요
  답변 좀 부탁 드립니다.
1  COMMENTS
  • Profile
    [勳]후니 2004.04.07 04:01
    확실한건 아니지만... i 값에 따라서 값이 변화하는 조건에서 in을 사용했네요..

    in 이나 범위 지정에선 작은 값이 앞에 큰 값이 뒤로 가야 하는것 같습니다.

    제가 확인한 내용은 아니고, 경험상 그리 알고 있습니다.

    두번째 if문은 i 값이 0 일경우 범위 지정에서 에러를 발생할 수

    있어서, 그부분에서 에러가 나는 것 같습니다.

    [작은값..큰값] 이런 표현이 성립 안될 수있으니깐요...