Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2008, 14:19   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию оператор перывания

Привет всем! Вот иногда возникает необходимость первать выполнение кода между begin..end и сразу передти на блок после else
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
b: boolean;
begin
   b := true;
   if b then
   begin
      b := false;
      {таинственный оператор}
      b := true;
   end;
   if b then showMessage('b = true');
   if not b then showMessage('b = false');
end;
Какой оператор должен я поставить, в указанном месте что-бы отобразилось не первое а второе сообщение? ('b = false')
Altera вне форума Ответить с цитированием
Старый 19.12.2008, 14:28   #2
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
label 1;
var
b: boolean;
begin
   b := true;
   if b then
   begin
      b := false;
      {таинственный оператор}
      goto 1;
      b := true;
   end;
   1: 
   if b then showMessage('b = true');
   if not b then showMessage('b = false');
end;
.

Последний раз редактировалось Viteef; 19.12.2008 в 15:31.
Viteef вне форума Ответить с цитированием
Старый 19.12.2008, 16:00   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Viteef Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
label 1;
var
b: boolean;
begin
   b := true;
   if b then
   begin
      b := false;
      {таинственный оператор}
      goto 1;
      b := true;
   end;
   1: 
   if b then showMessage('b = true');
   if not b then showMessage('b = false');
end;
.
Всегда есть выход через If then так что.. конечно из представленного кода
Код:
b := false; .... b := true;
ток такое и можно предложить
BOBAH13 вне форума Ответить с цитированием
Старый 19.12.2008, 16:06   #4
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
label 1;
var
b: boolean;
begin
   b := true;
   if b then
   begin
      b := false;
      {таинственный оператор}
      // goto 1;
      if false then
      begin
         b := true;
      end;
   end;
//   1: 
   if b then showMessage('b = true');
   if not b then showMessage('b = false');
end;
s.Creator вне форума Ответить с цитированием
Старый 19.12.2008, 18:08   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
label 1;
var
b: boolean;
begin
   try
   b := true;
   if b then
   begin
      b := false;
      Abort;{таинственный оператор}
      // goto 1;
      if false then
      begin
         b := true;
      end;
   end;
   finally
   if b then showMessage('b = true');
   if not b then showMessage('b = false');
   end;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 20.12.2008, 00:12   #6
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

рефакторинг рулит

Код:
function Fuck:boolean;
var
b: boolean;
begin
   b := true;
   if b then
   begin
      b := false;
      result:=b;
      b := true;
   end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
   if Fuck then showMessage('b = true');
   if not Fuck then showMessage('b = false');
end;
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 20.12.2008, 08:53   #7
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Ясно, спасибо!

Последний раз редактировалось Altera; 20.12.2008 в 08:57.
Altera вне форума Ответить с цитированием
Старый 20.12.2008, 09:36   #8
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
label 1;
var
b: boolean;
begin
   try
   b := true;
   if b then
   begin
      b := false;
      Abort;{таинственный оператор}
      // goto 1;
      if false then
      begin
         b := true;
      end;
   end;
   finally
   if b then showMessage('b = true');
   if not b then showMessage('b = false');
   end;
end;
Лучше вместо Abort использовать Exit, если конечно не надо выйти из всех выполняемых методов
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
  //...
  Button1Click(nil);
  //...
end;
s.Creator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оператор исключения Titan123 Общие вопросы Delphi 12 08.07.2008 14:30
Оператор в с++ JOFRIF Помощь студентам 2 22.04.2008 18:12
Оператор условия [Smarik] Помощь студентам 8 22.02.2008 18:49
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10
Оператор WITH Enko Общие вопросы Delphi 1 20.09.2007 20:36