Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.22;
Скачать: CL | DM;

Вниз

Несколько значений   Найти похожие ветки 

 
Sonic90   (2007-06-25 22:20) [0]

Подскажите пожалуйста как сделать чтобы если допустим переменная I равна Значению1 или Значению2 тогда выполнить определлённое действие(чтобы не писать два раза if I=... then)?


 
Kostafey ©   (2007-06-25 22:33) [1]

Можно использовать множества.


 
Kolan ©   (2007-06-25 22:38) [2]

> чтобы не писать два раза if I=&#133 then

case


 
Плохиш ©   (2007-06-25 22:39) [3]


> чтобы не писать два раза if I=... then)?

прочитай про or


 
Johnmen ©   (2007-06-25 22:39) [4]

А где тут два раза if?


 
Правильный Вася   (2007-06-25 22:42) [5]

if i in( 1, 2, 3 ) then


 
Kolan ©   (2007-06-25 22:52) [6]

> if i in( 1, 2, 3 ) then

О я не знал&#133 Как-то странно выглядит&#133 А там скобочки точно круглые?


 
Правильный Вася   (2007-06-25 22:55) [7]


>  А там скобочки точно круглые?

нет, квадратные
это SQL влез ;)


 
Плохиш ©   (2007-06-25 23:05) [8]


> Правильный Вася   (25.06.07 22:55) [7]
>
> >  А там скобочки точно круглые?
>
> нет, квадратные
> это SQL влез

Так ещё стоит уточнить, что только для ординарных типов, Integer к коим не относиться...


 
Anatoly Podgoretsky ©   (2007-06-25 23:10) [9]

> Sonic90  (25.06.2007 22:20:00)  [0]

Или по английски OR


 
Malik ©   (2007-06-25 23:24) [10]

Просто хотелось поучаствовать:)))
можно исследовать список возможных значений на какую-либо математическую закономерность (если они числа) и пишеш одно условие....
если же логическая, то тогда тоже можно через нормальную дезьюнктивную форму...


 
Sonic90   (2007-06-26 00:52) [11]

Всем спасибо,уже сам разобрался.


 
Германн ©   (2007-06-26 02:01) [12]


> Плохиш ©   (25.06.07 23:05) [8]
>
>
> > Правильный Вася   (25.06.07 22:55) [7]
> >
> > >  А там скобочки точно круглые?
> >
> > нет, квадратные
> > это SQL влез
>
> Так ещё стоит уточнить, что только для ординарных типов,
>  Integer к коим не относиться...
>

Это, простите как? Неужели у меня "палёная" справка?
Ordinal types include integer, character, Boolean, enumerated, and subrange types.
:)


 
Кщд ©   (2007-06-26 08:28) [13]


> если же логическая, то тогда тоже можно через нормальную
> дезьюнктивную форму...

а почему не КНФ, интересно?)
а где ссылка на теорему вычислимости на моделях?))


 
Однокамушкин   (2007-06-26 08:52) [14]


> Германн ©   (26.06.07 02:01) [12]

Тем не менее, множества с Integer"ом действительно плохо сочетаются, можно получить трудноуловимые ошибки...

var
 X: Integer;
begin
 X := 65535;
 if X in [65530, 65535] then
   ShowMessage("Yes");
end;


Это вообще не откомпилируется - Constant expression violates subrange bounds...

var
 X, A, B: Integer;
begin
 X := 65635;
 A := 1;
 B := 65535;
 {$R-}
 // По умолчанию эта опция отключена
 if X in [A, B] then
   ShowMessage("Yes");
end;


А это откомпилируется, но условие будет считаться невыполненным, т.к. из-за ограниченности размера множества значение B, выходящее за рамки диапазона, будет проигнорировано, и проверка будет эквивалентна if X in [1]... Правда, если включить $R+, будет ошибка времени исполнения...

Так что когда речь идёт об Integer - только if (X = A) or (X = B) then, а множества - это только для Byte...


 
zorik ©   (2007-06-26 10:26) [15]

case x of
 1..10, 25: ShowMessage("1-10,25")
 else ShowMessage("else");
end;



Страницы: 1 вся ветка

Текущий архив: 2007.07.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
4-1171368306
DVM
2007-02-13 15:05
2007.07.22
CloseHandle вызывает исключения?


11-1165826709
Greeg
2006-12-11 11:45
2007.07.22
Как сделать подсветку синтаксиса с помощью HIlightMemo?


2-1182798580
Malik
2007-06-25 23:09
2007.07.22
Немогу понять в чём дело???


6-1166595123
Vasya111
2006-12-20 09:12
2007.07.22
Подскажите POST на странице с Javascript


15-1182676769
Коллер
2007-06-24 13:19
2007.07.22
Поворот прямой