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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2013, 10:45   #1
ivt22
Пользователь
 
Регистрация: 23.07.2013
Сообщений: 81
По умолчанию Зацикливается программа? Почему?

Код:
  i := 0;
  while (lcolor <> $00202020) or (i <> 60) do begin
    lColor := image.Canvas.Pixels[i, 9];
    memo1.Lines.Add(IntToSTr(i)+') '+ColorToString(lColor));
    i := i + 1;
  end;
Если не находит нужный цвет, то программа зацикливается до бесконечности, в чем ошибка? Вроде написал условие ИЛИ, но почему-то не работает.

while lcolor <> $00202020 do begin - работает
while i <> 60 do begin - работает
while (lcolor <> $00202020) or (i <> 60) do begin - не хочет
ivt22 вне форума Ответить с цитированием
Старый 06.11.2013, 10:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Надо не ИЛИ а И.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2013, 11:23   #3
ivt22
Пользователь
 
Регистрация: 23.07.2013
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Надо не ИЛИ а И.
Спасибо помогло, но тогда зачем нужен оператор ИЛИ))
ivt22 вне форума Ответить с цитированием
Старый 06.11.2013, 11:25   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И я вот сижу и думаю - зачем он нужен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2013, 11:44   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ivt22 Посмотреть сообщение
Спасибо помогло, но тогда зачем нужен оператор ИЛИ))
для тех случаем, когда нужно, чтобы выолнялось ИЛИ одно логическое условие ИЛИ другое.

например, в коде можно так написать:
Код:
while not ((lcolor = $00202020) or (lcolor = clBlack)) and (i <> 60) do begin
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зацикливается ahgpoug Паскаль, Turbo Pascal, PascalABC.NET 1 05.05.2013 23:12
программа зацикливается Юрий_91 Общие вопросы C/C++ 4 24.04.2010 16:23
Зацикливается recv. asdo Общие вопросы C/C++ 4 23.01.2010 23:38