Главная страница
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.017 c
3-1176980413
nod
2007-04-19 15:00
2007.07.22
update sql с подзапросом


2-1182757805
gentos
2007-06-25 11:50
2007.07.22
Scan


3-1176918571
Michelin
2007-04-18 21:49
2007.07.22
Delphi+Oracle


2-1181921347
wesel
2007-06-15 19:29
2007.07.22
Ограничить Программку на использование ресурсов компа


15-1182329521
Суслик
2007-06-20 12:52
2007.07.22
Коллекции рисунков на tool button ы