![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли в операторе if задавать несколько условий? [D7, XP]
Lobach © (2007-05-08 12:10:00)Например есть переменная str. Она может иметь разные значения.
Если str=petya нужно выполнить одно действие
Если str=vasya нужно выполнить другое действие
Если str не petya и на vasya вывести сообщение
Не могу сообразить как это сделать
McSimm_ (2007-05-08 17:29:00) [1]
> P.S. И оперчаток уже не лопусить :)
Похоже, актуальная проблема :)))
{RASkov} (2007-05-08 17:26:00) [2]> [0] Lobach © (08.05.07 12:10)
Т.е. твой пример можно записать несколькими разными вариантами:
Вариант1:
if str='vasya' then <Делаем что с Васей(м)>
else //Не Вася
if str='petya' then <Делаем что с Петей(м)>
else // Ни тот ни другой
<Что-то делаем если не Вася и не Петя>
Вариант2:
if Str<>'vasya' then
if str<>'petya' then <Не Вася и не Петя>
else <Делаем что с Петей>
else <Делаем что с Васей>
Остальные варианты могут зависить от условий.
{RASkov} (2007-05-08 17:17:00) [3]> Lobach ©
if, then, else могут иметь неограниченную вложенность, и используется правило:
очередной then относится к ближайшему if, очередной else относится к ближайшему "свободному" then.
Пример:
if условие1 then
if условие2 then Это else
if условие3 then Это else То
else To <//if условие1 then
Ega23 (2007-05-08 17:09:00) [4]
> Вот же пальцы ты развиваешь - любо-дорого смотреть
я ещё и на машинке вышивать могу... :)
Игорь Шевченко (2007-05-08 17:00:00) [5]Ega23 © (08.05.07 12:22) [5]
Вот же пальцы ты развиваешь - любо-дорого смотреть
Loginov Dmitry (2007-05-08 16:16:00) [6]> Какой, нафиг case если переменная строковая.
Легко :)
case List.IndexOf(S) of
0: ShowMessage('vasya');
1: ShowMessage('petya');
else
ShowMessage('not vasya and not petya');
end;
Lobach (2007-05-08 13:30:00) [7]
> [5]
Спасибо
Kostafey (2007-05-08 13:08:00) [8]> лопусить
допустить
Kostafey (2007-05-08 13:04:00) [9]Щас опять пинать будут:
type
TParamKind = (ComboBox_, Data_, Text_);
var
ParamKind: array[TParamKind] of string = (
'ComboBox',
'Data',
'Text'
);
...
case ParamKind[i] of
ComboBox_: ;
Data_: ;
Text_: ;
end;
P.S. И оперчаток уже не лопусить :)
Elen (2007-05-08 12:39:00) [10]
> И чего???
и "вывести сообщение" :)
Elen (2007-05-08 12:37:00) [11]
> И чего???
и "вывести сообщение" :)
Amoeba (2007-05-08 12:31:00) [12]
> Neket (08.05.07 12:14) [2]
>
> Используй оператор case ... of ... else
>
Какой, нафиг case если переменная строковая.
Ega23 (2007-05-08 12:22:00) [13]
if (str='1') then
begin
ShowMessage('1')
end
else
if (str='2') then
begin
ShowMessage('2')
end
else
begin
ShowMessage('not 1 and not 2')
end;
iXT (2007-05-08 12:17:00) [14]> [1] Elen © (08.05.07 12:14)
> if (str<>petya) and (str<>vasya) then ...
И чего???
iXT (2007-05-08 12:16:00) [15]так и делаешь
if str='petya' then
или про case почитай
Elen (2007-05-08 12:14:00) [16]if (str<>petya) and (str<>vasya) then ...
Neket (2007-05-08 12:14:00) [17]Используй оператор case ... of ... else