Форум: "Начинающим";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Внизcase Найти похожие ветки
← →
qbegin (2006-11-07 19:23) [0]Как быть в такой ситуации
case ExmplDb.XNum of
1: ....
2: ....
6:
begin
if ExmplDb.YNum = 12 then
ShowMessage("12 ящиков спиртного :)")
else
ShowMessage("else");
end;
else
ShowMessage("else");
end;
В одном из условии case есть дополнительная проверка условия if, и при не верном для нас --> if срабатывает в else и я вынужден совершать такую же операцию, как при case ... --> else.
Оператор case не предпологает каких либо других решений? Или вернее, как можно по другому это сделать?
← →
Percent (2006-11-07 19:29) [1]Брррр... Ничего не понятно...
procedure DoOnElse;
begin
ShowMessage("else");
end;
...
case ExmplDb.XNum of
1: ....
2: ....
6: if ExmplDb.YNum = 12 then
ShowMessage("12 ящиков спиртного :)")
else
DoOnElse
else
DoOnElse
end;
P.S. Опять кого-то лень одолевает две строчки кода написать.
← →
qbegin (2006-11-07 19:32) [2]Да нет - не лень. Просто не знаю как правильно, вот и спрашиваю.
← →
Anatoly Podgoretsky © (2006-11-07 19:34) [3]> qbegin (07.11.2006 19:23:00) [0]
А смысл выдавать сообщение ELSE
← →
Percent (2006-11-07 19:37) [4]Просто не знаю как правильно, вот и спрашиваю.
Ты можешь сформулировать:
1. Что тебе надо?
2. Что ты уже написал?
3. Почему то, что ты написал, не соответствует тому, что тебе надо?
А то какая-то окрошка, а не вопрос.
← →
Anatoly Podgoretsky © (2006-11-07 19:42) [5]> Percent (07.11.2006 19:37:04) [4]
Он хочет зачем то вывести на экран слово ELSE
← →
qbegin (2006-11-07 19:44) [6]Ну собственно мой вопрос заключался в возможности перейти к case -> else, изнутри срабатывания одного из условий case. Как я понял такой возможности нет.
Т.е. типа такого сделать нельзя.case tmp.t1 of
1:
3:
7: if tmp.t2 = 8 then CaseGoToElse;
else
...
end;
Слово else, и прочие совпадения - случайны. Это пример.
← →
Percent (2006-11-07 19:47) [7]Он хочет зачем то вывести на экран слово ELSE
О Господи! Неисповедимы пути твои!
А case то зачем?!
← →
Percent (2006-11-07 19:50) [8][6] qbegin (07.11.06 19:44)
в возможности перейти к case -> else
А давай не к case -> else, а сразу в то место, где все "else" обрабатываются.
То есть, как в [1]...
← →
Leonid Troyanovsky © (2006-11-07 19:51) [9]
> qbegin (07.11.06 19:44) [6]
> Как я понял такой возможности нет.
Такой возможности нет.
--
Regards, LVT.
← →
qbegin (2006-11-07 19:51) [10]Всё ок, всй понятно единственный хороший способ в [2]. Всем спасибо!
← →
qbegin (2006-11-07 19:52) [11]в [1] т.е.
← →
Leonid Troyanovsky © (2006-11-07 19:57) [12]
> qbegin (07.11.06 19:52) [11]
> в [1] т.е.
Кста, никто никого ни к чему не принуждал.
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2006-11-07 19:59) [13]А чем лучше вызов функии, которая вызовет другую функцию, вместо прямого вызова?
← →
qbegin (2006-11-07 20:03) [14]
> А чем лучше вызов функии, которая вызовет другую функцию,
> вместо прямого вызова?
А напрямую - два раза описывать одно и тоже. У меня же не одна строчка как в примере Showmessage("Else") там.
← →
Leonid Troyanovsky © (2006-11-07 20:12) [15]
> qbegin (07.11.06 20:03) [14]
> > вместо прямого вызова?
> А напрямую - два раза описывать одно и тоже.
Зачем описывать, если требуется лишь вызов.
--
Regards, LVT.
← →
Плохиш © (2006-11-08 00:29) [16]Настроение подняли :-)) А то уже дремать начал :-)
Поприкалываюсь и я ;-)
....
label Super1;
....
case ExmplDb.XNum of
1: ....
2: ....
6:
begin
if ExmplDb.YNum = 12 then
ShowMessage("12 ящиков спиртного :)")
else
goto Super1;
end;
else
Super1:
ShowMessage("else");
end;
← →
Германн © (2006-11-08 01:55) [17]
> Плохиш © (08.11.06 00:29) [16]
>
> Настроение подняли :-)) А то уже дремать начал :-)
> Поприкалываюсь и я ;-)
Нормальный пример, кстати.
← →
Плохиш © (2006-11-08 02:15) [18]
> Нормальный пример, кстати.
Ну, дык, а то тут утверждают, что возможности нет ;-)
← →
Германн © (2006-11-08 02:41) [19]
> Плохиш © (08.11.06 02:15) [18]
>
>
> > Нормальный пример, кстати.
>
> Ну, дык, а то тут утверждают, что возможности нет ;-)
>
Но тут многие и за "чистоту расы", а там ты не проходишь! :-(
← →
Anatoly Podgoretsky © (2006-11-08 09:48) [20]> Плохиш (08.11.2006 02:15:18) [18]
Возможности чего? Он же спрашивает как из ветки N перейти в ветку ELSE а не вызвать внешнею процедуру и там и там. Конструкция case такого не позволяет, значит не та конструкция выбрана.
← →
Плохиш © (2006-11-08 10:55) [21]
> Anatoly Podgoretsky © (08.11.06 09:48) [20]
А Германн говорит, что [16] работает ;-)
← →
Anatoly Podgoretsky © (2006-11-08 11:31) [22]А у меня что к Goto есть претензии?
Кроме того работает или нет я проверять не буду, нет ни желания, как нет и уверенности, что работает.
← →
Плохиш © (2006-11-08 11:43) [23]
> Anatoly Podgoretsky © (08.11.06 11:31) [22]
> А у меня что к Goto есть претензии?
А как надо расценивать [20]?
> Кроме того работает или нет я проверять не буду, нет ни
> желания, как нет и уверенности, что работает.
Вот и будешь всю жизнь мучиться от неизвестности :-P
← →
Anatoly Podgoretsky © (2006-11-08 12:20) [24]
> А как надо расценивать [20]?
Расченивать надо в контексте переноса ShowMessage в отдельную процедуру. При том вместо просто вызова ShowMessage добавляется вызов процедуры, где делается тот же самый вызов ShowMessage :-)
← →
Плохиш © (2006-11-08 12:25) [25]
> Anatoly Podgoretsky © (08.11.06 12:20) [24]
Но я-то этого не предлагал 8-O
A [18] было написано по поводу [9].
← →
Anatoly Podgoretsky © (2006-11-08 12:34) [26]> Плохиш (08.11.2006 12:25:25) [25]
А я тоже пальцем не показывал :-)
И чего ты пристал с номерами ко мне?
Вроде бы все сказано в ветке.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.035 c