Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.01.2015, 19:58
Кандидат Javascript-наук
Отправить личное сообщение для Cache Посмотреть профиль Найти все сообщения от Cache
 
Регистрация: 02.05.2013
Сообщений: 111

можно ли оптимизировать 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

Последний раз редактировалось Cache, 02.01.2015 в 20:20. Причина: изменено описание и пример
Ответить с цитированием
  #2 (permalink)  
Старый 02.01.2015, 20:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Этот код делает абсолютно тоже самое:
function rand(min,max){return Math.floor(Math.random()*(max-min+1))+min;};
do{
    str=rand(1,10);
}while(str==1);
alert(str)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 02.01.2015, 20:06
Кандидат Javascript-наук
Отправить личное сообщение для Cache Посмотреть профиль Найти все сообщения от Cache
 
Регистрация: 02.05.2013
Сообщений: 111

danik.js, чуть изменил описание, не совсем корректно задал изначально вопрос
при проверке if(str==1){func_2()} - выполняется иная функция, нежели при str=func_1()
Ответить с цитированием
  #4 (permalink)  
Старый 02.01.2015, 20:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Думаю, что только так:
do{
    str=rand(1,10);
    if(str!==1){break};
    alert(str);
}while(true);
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 02.01.2015, 20:21
Кандидат Javascript-наук
Отправить личное сообщение для Cache Посмотреть профиль Найти все сообщения от Cache
 
Регистрация: 02.05.2013
Сообщений: 111

danik.js, да, была такая мысль, а других вариантов, как я понимаю - нет...
Ответить с цитированием
  #6 (permalink)  
Старый 02.01.2015, 20:27
Кандидат Javascript-наук
Отправить личное сообщение для Cache Посмотреть профиль Найти все сообщения от Cache
 
Регистрация: 02.05.2013
Сообщений: 111

если только так еще:
while(true){
    str=rand(1,10);
    if(str!==1){break};
    alert(str);
};
Ответить с цитированием
  #7 (permalink)  
Старый 03.01.2015, 00:43
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

или так

while(true){
    str=rand(1,10);
    str === 1 ? alert(str) : break;

};


или в другой функции прописать проверку значения str. но только это полный бред !

Последний раз редактировалось caetus, 03.01.2015 в 00:46.
Ответить с цитированием
  #8 (permalink)  
Старый 03.01.2015, 07:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

caetus, нельзя так. Попробуй запусти.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 03.01.2015, 08:36
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

(function(){
    while(true) {
        var str = rand(1, 10);
        if (str !== 1) break;
        alert(str);
    };
})();

Во-первых, объявление без var запрещено, во-вторых, работа в глобале идет дольше.

Последний раз редактировалось Erolast, 03.01.2015 в 11:17.
Ответить с цитированием
  #10 (permalink)  
Старый 03.01.2015, 10:19
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

var я случайно упустил )) danik да не работает , а почему ?? как понимаю все через тернарный оператор
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
доработать скрипт под IE 8 harryer Internet Explorer 1 23.09.2009 11:53
Скрипт под форумы vB UndeadDragon Opera, Safari и др. 0 19.09.2009 18:22
Скрипт меню работает только под IE7 и выше TAILER Internet Explorer 1 31.08.2009 13:21
Люди, помогите адаптировать скрипт под Оперу KiLLk Opera, Safari и др. 1 01.06.2009 01:05
Можно ли определить адрес ссылки под курсором? PK.Kirill Events/DOM/Window 16 29.05.2008 16:00