2015-07-18 3 views
0

Я новичок в JS. Теперь я пытаюсь закодировать сценарий, где, когда я покупаю мобильный телефон, цена вычитается из моей кредитной карты. здесь кодwhile loop не дает правильных результатов

// Total Money in my Credit Card 
var totalMoneyForCredit=150; 

// Your Current Billing from Shop 
var moneySpent=0; 

// Prices of Phones 
var samsungPrice=33; 
var sonyPrice=22; 
var nokiaPrice=22; 

// Asseorices for mobile 

var charger=5; 
var headset=10; 


// Ask user for Purchasing Which mobies 


while(totalMoneyForCredit>0){ 
    var order=prompt("Please enter the mobile you want to Purchase"); 
    if (order==='sam') { 
     moneySpent=moneySpent+samsungPrice; 

     totalMoneyForCredit=totalMoneyForCredit-moneySpent; 

    } 
    else if (order==='nokia') { 
     moneySpent=moneySpent+nokiaPrice; 
     totalMoneyForCredit=totalMoneyForCredit-moneySpent; 


    } 

    else if (order==='sony') { 
     moneySpent=moneySpent+sonyPrice; 

     totalMoneyForCredit=totalMoneyForCredit-moneySpent; 

    } 
    document.write( '<b>' + ' You spent ' + moneySpent + " and the money left in your credit is " + totalMoneyForCredit + '</br>'); 

} 

Это работает нормально, но когда я магазин Nokia или любой телефон в 4-й раз цены отображаются неправильно.

Snapshot

Как же я провел 88 из 150 и до сих пор деньги левая -70. Пожалуйста, скажите мне, где я делаю это неправильно. Спасибо.

+1

Ваше приращение 'moneySpent', а затем вычесть эту сумму из того, что у вас были, я хотел бы предложить вычитая цену телефона вместо – depperm

+0

, как исправить это? –

+2

Я удивлен, что вы считаете, что первые 3 правильные и только четвертый неправильный –

ответ

0

Вот как я это сделаю, вычитая цену телефона от общей суммы денег, а не всего денег от оставшейся суммы.

// Total Money in my Credit Card 
 
var totalMoneyForCredit=150; 
 

 
// Your Current Billing from Shop 
 
var moneySpent=0; 
 

 
// Prices of Phones 
 
var samsungPrice=33; 
 
var sonyPrice=22; 
 
var nokiaPrice=22; 
 

 
// Asseorices for mobile 
 

 
var charger=5; 
 
var headset=10; 
 

 

 
// Ask user for Purchasing Which mobies 
 

 

 
while(totalMoneyForCredit>0){ 
 
    var order=prompt("Please enter the mobile you want to Purchase"); 
 
    if (order==='sam') { 
 
     moneySpent=moneySpent+samsungPrice; 
 

 
     totalMoneyForCredit=totalMoneyForCredit-samsungPrice; 
 

 
    } 
 
    else if (order==='nokia') { 
 
     moneySpent=moneySpent+nokiaPrice; 
 
     totalMoneyForCredit=totalMoneyForCredit-nokiaPrice; 
 

 

 
    } 
 

 
    else if (order==='sony') { 
 
     moneySpent=moneySpent+sonyPrice; 
 

 
     totalMoneyForCredit=totalMoneyForCredit-sonyPrice; 
 

 
    } 
 
    console.log(' You spent ' + moneySpent + " and the money left in your credit is " + totalMoneyForCredit); 
 

 
} 
 
alert('You ran out of money!');

+0

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

+0

добавил предупреждение, когда у вас закончились деньги – depperm

+0

как это сделать? –

0

Вы провели 88 из 18, оставшихся от предыдущих транзакций. Таким образом, у вас осталось 18-88 = -70.

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