Форум: "Начинающим";
Текущий архив: 2007.07.22;
Скачать: [xml.tar.bz2];
ВнизНесколько значений Найти похожие ветки
← →
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=… 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
О я не знал… Как-то странно выглядит… А там скобочки точно круглые?
← →
Правильный Вася (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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c