Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.057 c
15-1330000715
aka
2012-02-23 16:38
2013.03.22
Тест Эйнштейна при приеме на работу)


15-1329058787
Чебурашка
2012-02-12 18:59
2013.03.22
Вызов функции в чужом процессе


15-1344972507
guest
2012-08-14 23:28
2013.03.22
conhost.exe...


2-1331629101
alexdn
2012-03-13 12:58
2013.03.22
Клик мышки


2-1338983806
iMain
2012-06-06 15:56
2013.03.22
Client WebService





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский