- Код: Выделить всё
if a > 0 and b > boolean(0) then
вполне работает))
Модератор: Модераторы
if a > 0 and b > boolean(0) then
скалогрыз писал(а):И кстати, попускать слюни на Си/Си++, где такие вещи можно! (т.к. boolean типа там нет... ну или не было, но по факту, им не очень руководствуются)
Лекс Айрин писал(а):И где это неисчерпаемый источник ошибок. А ведь достаточно сменить приоритет оператора and и компилятор проглотит условие.
zub писал(а):вполне работает))
скалогрыз писал(а): который попробует изменить приоритет оператора.
Лекс Айрин писал(а):Не забывай, что у тех, кто работает в других языках приоритеты могут отличаться. И потом, если это делать не для галочки, а серьезно подумав, то ничего страшного не произойдет.
скалогрыз писал(а):можно, например, поменять, законадетльно, красный и зелёный цвета... ну так... серьёзно подумав.
скалогрыз писал(а):но, если не уверен - ставь скобки
Не забывай, что у тех, кто работает в других языках приоритеты могут отличаться. И потом, если это делать не для галочки, а серьезно подумав, то ничего страшного не произойдет.
скалогрыз писал(а):
- Код: Выделить всё
var
a,b : integer;
begin
if a > 0 and b > 0 then
внимательно смотрим список приоритетов
видим - что у оператора "and" приоритет выше, чем у оператора сравнивания, по-этому выражение выше, оператор видит, как
- Код: Выделить всё
var
a,b : integer;
begin
if (a > (0 and b)) > 0 then
т.к. и 0 и b это тип INTEGER, то результат его работы, это INTEGER.
и получаем выражение:
- Код: Выделить всё
if (a > NNN) > 0 then
,где NNN - это некое число.
var
a,b : integer;
begin
if (a > 0) and (b > 0) then
sign писал(а):И не нужно ничего сочинять, как там оно будет выглядеть.
Лекс Айрин писал(а):Но это же получается косяк компилятора. Т. е. программист пытается исправить то, что компилятор должен делать сам.
var
visible:integer;
..
begin
visible:=0;
...
visible:=checkbox.visible and checkbox2.visible and checkbox2.visible;
...
visible:=visible xor $FFFFFFFF;
..
if visible then
format_disk_c.run();
const
MY_VISIBLE=37261;
MY_NOT_VISIBLE=23842;
olegy123 писал(а):вообще boolean это тип integer , его ввели для облечении программисту или читающего его программу..
ElectroGuard, это помощь, которая хуже вреда.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8