Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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=&#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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.039 c
2-1182919428
Человек
2007-06-27 08:43
2007.07.22
Ошибка в SQL


2-1182855558
Nikfel
2007-06-26 14:59
2007.07.22
Как освободить память программы


2-1176793044
ak-82
2007-04-17 10:57
2007.07.22
Ошибка синтаксиса в предложении FROM


15-1182249681
Megabyte
2007-06-19 14:41
2007.07.22
В Firebird е нельзя во вьюхах использовать процедуры выбора?


2-1182787203
mry
2007-06-25 20:00
2007.07.22
array of Byte





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский