2016-10-25 3 views
-1

У меня возникли проблемы с тем, чтобы этот код работал. Я думаю, что это как-то связано с циклом while. Также я новичок в JavaScript, поэтому, если у вас есть предложения по улучшению синтаксиса или повышению эффективности моего кода, мы будем очень благодарны.while цикл не работает в javascript

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

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

«Сценарий на этой странице может быть занят, или он может прекратить отвечать на запросы. Вы можете остановить сценарий, откройте скрипт в отладчике или продолжите сценарий ».

https://jsfiddle.net/krighty78/g44ejnbw/1/

/* The user enters a cost of an item and then the amount of 
 
     money given. The program will figure out the change and the number of quarters, dimes, nickels, pennies needed for the change.*/ 
 

 

 
    var cost = prompt('please enter total cost of the item without tax'); 
 
    cost = parseFloat(cost); 
 

 
    var moneyGiven = prompt('please enter the amount of money given'); 
 
    moneyGiven = parseFloat(moneyGiven); 
 

 
    var tax = 0.15; 
 
    tax = (cost * tax); 
 

 
    var quarter = 0; 
 
    var dime = 0; 
 
    var nickel = 0; 
 
    var penny = 0; 
 

 
    var q = 0.25; 
 
    var d = 0.10; 
 
    var n = 0.05; 
 
    var p = 0.01; 
 
    var change = (moneyGiven - (cost + tax)); 
 
    console.log(change); 
 

 
    while (change > 0) { 
 

 
     if (change >= q) { 
 
     change - q; 
 
     quarter++; 
 
     } else if (change >= d) { 
 
     change - d; 
 
     dime++; 
 
     } else if (change >= n) { 
 
     change - n; 
 
     nickel++; 
 
     } else if (change >= p) { 
 
     change - p; 
 
     penny++; 
 
     } 
 

 
    }; //while loop 
 

 
    console.log(quarter); 
 
    console.log(dime); 
 
    console.log(nickel); 
 
    console.log(penny);

+2

Для отладки вопросов отправьте требуемое и фактическое поведение. –

+1

Вы не присваиваете новое значение 'change', используйте' change - = q; 'или' change = change - q; ' –

+0

Мне кажется, что вам не нужно изменять переменную 'change'. Как и код 'change-d', не должен быть' change = change-d'? –

ответ

0

в то время как цикл в норме, проблема заключается в формулировках

change - q; 
change - d; 
change - n; 
change - p; 

Вы не обновляя значение change. Измените их на:

change = change - q; 
change = change - d; 
change = change - n; 
change = change - p; 
+0

Это сработало !, спасибо за помощь. –

Смежные вопросы