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

Вниз

что-то с логикой не понятно,   Найти похожие ветки 

 
Abra   (2012-03-19 17:51) [0]

справки нет под рукой,
извините за тупой вопрос и подскажите пожалуйста,
while работает пока false или пока True?


 
Омлет ©   (2012-03-19 17:55) [1]

Пока тру.


 
Германн ©   (2012-03-19 17:56) [2]

True


 
Abra   (2012-03-19 17:57) [3]

спасибо


 
xayam ©   (2012-03-19 19:27) [4]

пока есть ложь ничего работать не будет :)


 
Ega23 ©   (2012-03-19 19:29) [5]


> пока есть ложь ничего работать не будет :)


Неверное утверждение.
"Будет работать, пока истина" <> "Не будет работать, пока ложь".


 
MBo ©   (2012-03-19 19:32) [6]

>пока есть ложь ничего работать не будет :)
лживый repeat :)


 
CRLF   (2012-03-19 19:36) [7]


> пока есть ложь ничего работать не будет
Убрав двойное отрицание, получаем: "пока есть ложь, всё работать будет"


 
Ega23 ©   (2012-03-19 19:37) [8]


> Убрав двойное отрицание, получаем: "пока есть ложь, всё
> работать будет"


Не, тут ключевое слово "пока". :)


 
Inovet ©   (2012-03-19 20:26) [9]

> [8] Ega23 ©   (19.03.12 19:37)
> Не, тут ключевое слово "пока". :)

Без правды нет движения.
Движение есть с правдой.


 
Jeer ©   (2012-03-19 20:27) [10]

"Англичане" вообще отрицают два "не" подряд.
Вот и ответ :)


 
Думкин_   (2012-03-19 20:29) [11]


> MBo ©   (19.03.12 19:32) [6]
> >пока есть ложь ничего работать не будет :)
> лживый repeat :)

Вымораживает напрочь. Не люблю его за это.


 
Ega23 ©   (2012-03-19 21:20) [12]


> Без правды нет движения.
> Движение есть с правдой.


Без правды нет движения - это да.
Но xayam сказал: "пока есть ложь ничего работать не будет".
Разница в том, что если сначала была ложь, а потом стала истина, то один фиг работать не будет. :)


 
palva ©   (2012-03-19 21:43) [13]

Строчка while и строчка repeat передает управление следующей строчке, если "истина".


 
Ega23 ©   (2012-03-19 21:45) [14]


> Строчка while и строчка repeat передает управление следующей
> строчке, если "истина".


Побойся Б-га!
repeat в любом случае выполнится хотя бы 1 раз.


 
TUser ©   (2012-03-19 21:47) [15]

repeat всегда передает


 
TUser ©   (2012-03-19 21:52) [16]

Кстати, интереса ради, а не появилось ли в современных Делфях break и continue из произвольного цикла, типа как тут во втором примере

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

Каюсь, после Д7 ничего не видел.


 
palva ©   (2012-03-19 21:59) [17]

Да. Я не то написал, что имел в виду. Я хотел сказать про строчку until.
Когда я был маленький, я так и запоминал работу циклов while и repeat: когда встречается строчка while или until, при истине управление проваливается вниз.


 
Ega23 ©   (2012-03-19 22:15) [18]


> Кстати, интереса ради, а не появилось ли в современных Делфях
> break и continue из произвольного цикла, типа как тут во
> втором примере


Дык всю жизнь и Break и Continue были... И из for, и из while. и из repeat


 
Игорь Шевченко ©   (2012-03-19 22:29) [19]

palva ©   (19.03.12 21:59) [17]


> Когда я был маленький, я так и запоминал работу циклов while
> и repeat: когда встречается строчка while или until, при
> истине управление проваливается вниз.


В сишном

do {
...statements
} while (condition);

с точностью до наоборот, не вниз, а вверх


 
CRLF   (2012-03-19 23:57) [20]


> Я не то написал, что имел в виду
Мнение автора может не совпадать с его точкой зрения


> Дык всю жизнь и Break и Continue были...
Он не об этом. По ссылке обрати внимание на раздел labeled break.


 
Ega23 ©   (2012-03-20 00:28) [21]


> Он не об этом. По ссылке обрати внимание на раздел labeled break.


а, теперь понял.
Ну фиг знает, возможно иногда было бы полезно. Но такого нет.


 
palva ©   (2012-03-20 00:34) [22]

В паскале 5.5 break и continue не было. Очень это расстраивало, пока 6.0 не появился.


 
xayam ©   (2012-03-20 00:53) [23]


> если сначала была ложь, а потом стала истина, то один фиг
> работать не будет

будет, но за пределами цикла while, где неважно есть ложь или нет :)


 
Германн ©   (2012-03-20 01:27) [24]

Как легко эту логику было запоминать в турбо паскале даже тем, кто был не в ладах с английским. Ибо под руками была куча исходников с циклами
while True do
или
repeat
...
until False;

:)


 
Petr V. Abramov ©   (2012-03-20 02:23) [25]

мда... 24 поста на такую простую тему...
http://lleo.me/arhive/fan2008/gamlet.html


 
Abra   (2012-03-20 08:27) [26]

немного не так, потому что не совсем просто
это не delphi, а скриптовый плагин, автор которого утверждает, что работает он в операторах pascal
но попытка написать
while ( (not(DataEnd)) and (UserWantToExit) and (not(IsWorkTime))  )
begin
 перекодировать дальше
end
(все переменные вариантные? скорее всего так)
приводит к бесконечному циклу

однако,
while ( not(DataEnd) )
begin
 if UserWantToExit then Break;
 if not(IsWorkTime) then Break;
 перекодировать дальше
end
выходит из цикла правильно

или автор напутал,
или переменные неправильные значения принимают как то


 
И. Павел ©   (2012-03-20 08:57) [27]

> [26] Abra   (20.03.12 08:27)

Если
while ( (not(DataEnd)) and (UserWantToExit) and (not(IsWorkTime))  )
приводит к бесконечному циклу, то UserWantToExit всегда true (т.к. если бы он был false, то и все выражение было бы ложно), а значит выражение
if UserWantToExit then Break;
при первой же итерации завершит цикл.


 
begin...end ©   (2012-03-20 09:10) [28]

> Abra   (20.03.12 08:27) [26]

В первом варианте UserWantToExit (а также not IsWorkTime) - условия продолжения цикла, тогда как во втором - это условия его окончания.



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

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

Наверх




Память: 0.53 MB
Время: 0.05 c
15-1352901277
ЕщеОдинКакжеНадоели
2012-11-14 17:54
2013.03.22
Удалить кусок текста.


2-1328511667
_QWERTY_
2012-02-06 11:01
2013.03.22
инициализировать переменную


6-1260272923
krisri
2009-12-08 14:48
2013.03.22
Сокеты


2-1334754032
andrewtitoff
2012-04-18 17:00
2013.03.22
Картинки в массив и обратно


15-1349435137
Roman_man
2012-10-05 15:05
2013.03.22
Как получить деньги? Web-money.