Форум: "Прочее";
Текущий архив: 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.074 c