![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Case ??? [D6]
Koala © (2004-09-04 21:32:00)Почему так получается
REAL_NUM : integer;
ENT_NUM : integer;
END_NUM : integer;
case REAL_NUM of
ENT_NUM..END_NUM: - ругается
else
begin
end;
end;
case REAL_NUM of
0..15: - нормально проходит
else
begin
end;
end;
Koala (2004-09-04 23:17:00) [1]Спасибо всем!!!
Mihey_temporary (2004-09-04 23:10:00) [2]2 Koala:
Хочу добавить, что если твоя задача может быть решена способом Mihey_temporary © (04.09.04 22:10) [3], то лучше им и воспользоваться, так как он на порядок быстрее в плане выполнения (проверял сейчас только). Это справледливо, если элементов множества больше 32.
Mihey_temporary (2004-09-04 23:00:00) [3]
> тогда получается
> if REAL_NUM in [ENT_NUM..END_NUM] then - не ругается но
> и не работает
>
> почему???
Ошибка в значениях, наверное. Вот такой код у меня сработал на ура (сообщение появилось):
var Cu1: Integer;
Lo1: Integer;
Hi1: Integer;
begin
Cu1 := 50;
Lo1 := 1;
Hi1 := 100;
If Cu1 in [Lo1..Hi1] then
ShowMessage('!!!!');
Koala (2004-09-04 22:19:00) [4]
> [3] Mihey_temporary © (04.09.04 22:10)
спасибо
тогда получается
if REAL_NUM in [ENT_NUM..END_NUM] then - не ругается но и не работает
почему???
Mihey_temporary (2004-09-04 22:10:00) [5]
If (REAL_NUM >= ENT_NUM) and (REAL_Num <= END_NUM) then
begin
end;
Koala (2004-09-04 22:04:00) [6]
> Семен Сорокин © (04.09.04 21:42)
Тогда как его обойти???
Семен Сорокин (2004-09-04 21:42:00) [7]потому как там должна стоять константа, или выражение которое компилятор может вычислить на этапе компиляции.
ЗЫ. В хелпе по case это черным по белому написано.