PDA

Просмотр полной версии : Глюк с циклом while


dron59
27.12.2005, 16:00
Доброго времени суток! Есть MF MX Pro 2004. Есть код:
var A:Number = null;
var B:Number = null;
var C:Number = null;
var D:Number = null;
function gen() {
while (A == B) {
A = Math.round(Math.random()*9);
B = Math.round(Math.random()*9);
}
while (C == A || C == B) {
C = Math.round(Math.random()*9);
}
while (D == A || D == B || D==C) {
D = Math.round(Math.random()*9);
}
}
gen();
trace(A+""+B+""+C+""+D);
Вопрос! почему при выполнении выводит: 2 4 null 8 . Выпадает второй цикл. Один while (A||B||C||F) работает нормально. Где собака порылась?

Double
27.12.2005, 16:16
или я чего-то не понимаю, или после первого цикла А и В уже ненулевые, а С=null, т.е. С не равняется ни А, ни В, т.е. цикл и не должен исполняться...

dron59
27.12.2005, 16:21
спасибо!! заработался :rolleyes:
"есть два типа задач - неразрешимые и те которые решаются сами собой"

Бармалей
27.12.2005, 16:35
или я чего-то не понимаю, или после первого цикла А и В уже ненулевые, а С=null, т.е. С не равняется ни А, ни В, т.е. цикл и не должен исполняться...
Верно мыслишь, Double.
А третий цикл выполняется только лишь потому, что C = null и D = null.