Показать сообщение отдельно
Старый 15.04.2009, 12:45   #2  
cerbo is offline
cerbo
Участник
 
25 / 11 (1) +
Регистрация: 02.10.2008
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Условия
X++:
t= d == (5 || 10); // false
и
X++:
t= (d == 5 || d == 10); // true
Отличаются далеко не элегантностью, а принципиальностью. В обоих случаях сис-ма посчитала логически правильно. Разберите выражения внимательно.

Во избежание получения результата, отличного от ожидаемого, в подобных случаях можно использовать более читабельные конструкции, например:

X++:
if (d == 5 || d == 10)
 t = true;
Чуть длинее, за то понятнее.
Я думаю красота этого:
X++:
t= d == (5 || 10);
перевешивает приимущества неявных преобразований.

И назидательный тон ваш совсем не уместен, эти примеры я сам написал и поэтому хорошо знаю и понимаю что в них написано.
__________________
Dynamics AX 4.0.2501.122 SP2, kernel 4.0.2163.0, MS SQL 2005

Последний раз редактировалось cerbo; 15.04.2009 в 12:46. Причина: очепятка