![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2008
Сообщений: 6
|
Объясните пожалуйста, почему в одном случае выдаётся "true", в другом "false", причём это всё как то связано с "1", при замене допустим на "4" или "6" в обоих случая выдаётся "true". Подскажите как происходит обсчёт и как этого избежать, чтобы всё считалось верно?
Последний раз редактировалось iNils; 02.05.2009 в 03:04. |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Как избежать - не писать подобных конструкций. Есть скобки, есть && и ||. Не надо лишний раз запутывать компилятор и себя.
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Для оформления своего кода надо использовать теги [code][/code]
При неравенстве с единицей, последняя преобразуется в булево значение true, что не происходит с другими числами, они дают false. Есть строгое неравенство !== там такого не будет. В вашем случаи q!=w это true, true != 7 тоже true, а true != 1, это true != true, что дает false. Получается: (true != true) != false, это false != false и результат true (true != false) != true, это true != true и результат false Последний раз редактировалось iNils; 02.05.2009 в 14:06. |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 6
|
Ясно, немного разобрался в механизме. Спасибо. Но тогда возникает вот какой вопрос, а как тогда всё таки добиться того, что изначально планировал, как должно выглядеть уровнение, которое выдаёт "false" в том случае если хотя бы "2" из "n" чисел равны и "true" в том случае если все числа отличны друг от друга?
![]() |
|
|||||
|
Ну, каждое нужно сравнить с каждым. Это 2 вложенных цикла.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 6
|
Это ясно, то есть без цикла не обойтись?)
|
|
|||||
|
Ну в голову пока идея не лезет.
Когда на бумажке смотришь на цифры, ты ведь каждый сравниваешь с каждым, так?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
var array:Array = [9, 8, 7, 1, 5, 4]; var result:Boolean = true; var index:Number; for (var i:Number = 0; i < array.length; i++) { index = array.indexOf(array[i]); if (index >= 0 && index != i) { result = false; break; } } trace (result); ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Гениально! Спасибо, никогда бы сам такое не придумал))) Меня только на такое хватило))
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 02.05.2009 в 15:07. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:07. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| исключение дублирования |
| Опции темы | |
| Опции просмотра | |
|
|