можно ли оптимизировать do{...}while(); скрипт под катом
Можно ли оптимизировать в данном скрипте связку if с while, т.к. проверка в них идет одной и той же переменной на равенство одному и тому же значению
function rand(min,max){return Math.floor(Math.random()*(max-min+1))+min;}; // пример с rand, просто для примера do{ str=rand(1,10); // в реале, запуск первой функции if(str==1){alert(str);}; // в реале, запуск второй функции, влияющей на первую }while(str==1); alert(str) данный пример, просто из головы, просто, чтобы запускался тут, кроме связки if c while |
Этот код делает абсолютно тоже самое:
function rand(min,max){return Math.floor(Math.random()*(max-min+1))+min;}; do{ str=rand(1,10); }while(str==1); alert(str) |
danik.js, чуть изменил описание, не совсем корректно задал изначально вопрос
при проверке if(str==1){func_2()} - выполняется иная функция, нежели при str=func_1() |
Думаю, что только так:
do{ str=rand(1,10); if(str!==1){break}; alert(str); }while(true); |
danik.js, да, была такая мысль, а других вариантов, как я понимаю - нет...
|
если только так еще:
while(true){ str=rand(1,10); if(str!==1){break}; alert(str); }; |
или так
while(true){ str=rand(1,10); str === 1 ? alert(str) : break; }; или в другой функции прописать проверку значения str. но только это полный бред ! |
caetus, нельзя так. Попробуй запусти.
|
(function(){ while(true) { var str = rand(1, 10); if (str !== 1) break; alert(str); }; })(); Во-первых, объявление без var запрещено, во-вторых, работа в глобале идет дольше. |
var я случайно упустил )) danik да не работает , а почему ?? как понимаю все через тернарный оператор
|
Часовой пояс GMT +3, время: 05:34. |