Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

Вот так грабли 8-)   Найти похожие ветки 

 
Zhekson   (2005-01-17 09:30) [0]

Это рабочий код:

   while (SG1.Cells[Col, Row] <> " --") do
     begin
     .................................
     end;


А это нет:

   while (SG1.Cells[Col, Row] <> " --") or (SG1.Cells[Col, Row] <> " ! ") do
     begin
     .................................
     end;


Не то что на " ! " не останавливается, а на " --" перестаёт останавливаться. Это как понимать?


 
Александр Иванов ©   (2005-01-17 09:31) [1]

Что значит останавливается? Если говорит об ошибке, то неплохобы на ее текст посмотреть.


 
begin...end ©   (2005-01-17 09:33) [2]

> Zhekson   (17.01.05 09:30)

Ну то, что может не останавливаться на втором условии, - это как раз понятно. И зависит это от значения первого условия. При соответствующей настройке компилятора, разумеется.

А результаты работы этого цикла - не такие, как должны быть?


 
Zhekson   (2005-01-17 09:43) [3]

это код прохода по таблице(StringGrid) пока в ячейке не встретится " --"; Тут всё работает, а вот если я добавлю

or (SG1.Cells[Col, Row] <> " ! ")


то проход по таблице осуществляется, но ни на " --" не останавливается ни на " ! ".

8-)


 
begin...end ©   (2005-01-17 09:47) [4]

> [3] Zhekson   (17.01.05 09:43)

Вы бы хоть код тела цикла привели...


 
Александр Иванов ©   (2005-01-17 09:48) [5]

and насколько я понял надо


 
Neznaika ©   (2005-01-17 09:49) [6]

Недавно делал что-то похожее, только с помощью repeat..until
В условии until вписывал необходимые условия и все работало.
И вообще я почему- то repeat люблю БОЛЬШЕ...


 
ALS ©   (2005-01-17 09:49) [7]

Непонятно, что ты хотел достичь проверкой
(SG1.Cells[Col, Row] <> " --") or (SG1.Cells[Col, Row] <> " ! ") ?
Это условие всегда будет TRUE. Попробуй
(SG1.Cells[Col, Row] <> " --") and (SG1.Cells[Col, Row] <> " ! ")


 
Neznaika ©   (2005-01-17 09:52) [8]


> ALS ©   (17.01.05 09:49) [7]
> Непонятно, что ты хотел достичь проверкой
> (SG1.Cells[Col, Row] <> " --") or (SG1.Cells[Col, Row] <>
> " ! ") ?
> Это условие всегда будет TRUE.


Я чего-то не понимаю? А если у него в 1 строке "--" во 2 "!" а в 3 "хрен" тоже будет true


 
begin...end ©   (2005-01-17 09:54) [9]

> [8] Neznaika ©   (17.01.05 09:52)

Именно так. Тоже будет TRUE.


 
Zhekson   (2005-01-17 09:55) [10]

[4]

весь код там ни при чём... вопрос в том, почему конструкции

while (SG1.Cells[Col, Row] <> " --") и while (SG1.Cells[Col, Row] <> " ! ")

по отдельности работают, а

while (SG1.Cells[Col, Row] <> " --") or (SG1.Cells[Col, Row] <> " ! ")

не работают ;((


 
begin...end ©   (2005-01-17 09:57) [11]

> [10] Zhekson   (17.01.05 09:55)
Ну потому что условие (SG1.Cells[Col, Row] <> " --") or (SG1.Cells[Col, Row] <> " ! " ВСЕГДА истинно. Зачем же его вычислять?


 
Zhekson   (2005-01-17 10:06) [12]

Всем спасибо. C and заработало...

так точно, будет true ведь перекрыть этот цикл можно только если и то и то = true.


 
Neznaika ©   (2005-01-17 10:07) [13]

Че-то я вообще запутался: так при AND IMHO должны выполнится оба условия, а ему надо при одном совпадении выпасть из цикла?


 
begin...end ©   (2005-01-17 10:08) [14]

> [13] Neznaika ©   (17.01.05 10:07)

True and False = False


 
Neznaika ©   (2005-01-17 10:11) [15]

Все понял...
Вчерашнее пиво совсем мозги атрофировало...


 
Anatoly Podgoretsky ©   (2005-01-17 10:52) [16]

Neznaika ©   (17.01.05 10:07) [13]
Оно и выполнится, возможно.



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.052 c
1-1105870166
DimDim
2005-01-16 13:09
2005.01.30
Копировать каталог


9-1098797748
А22
2004-10-26 17:35
2005.01.30
Voxel


14-1105456159
Petrovich_
2005-01-11 18:09
2005.01.30
C++


14-1105429646
Sergey13
2005-01-11 10:47
2005.01.30
Новое платежное поручение. Есть у кого?


1-1105985241
BAYES
2005-01-17 21:07
2005.01.30
Кусок текста из Word