2013-12-11 4 views
-3

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

Система расходов: Напишите программу, которая запрашивает транспортные расходы пользователя. Он должен запросить имя расхода, затем сумму. Он должен продолжать собирать расходы, пока пользователь не покинет входной пробел.

Любые расходы в размере 100 долларов США и ниже должны быть одобрены автоматически. Любые расходы свыше 100 долларов США не должны утверждаться автоматически.

Общая сумма утвержденных и неутвержденных расходов.

Сначала отобразите утвержденные расходы. Затем отобразите расходы, требующие одобрения вручную.

Показать общие утвержденные расходы и общие расходы на «необходимость утверждения».

Заранее благодарен!

//Variables 
var expenseName; 
var expensePrice; 
var loopAgain = true; 
var approvedExpenses = new Array(); 
var approvedExpensePrice = new Array(); 
var unApprovedExpenses = new Array(); 
var unApprovedExpensePrice = new Array(); 
var approvedExpenseTotal = 0; 
var unApprovedExpenseTotal = 0; 


while(loopAgain) { 
    expenseName = prompt("What is the expense? - Type 'done' to end."); 
    expensePrice = prompt("What is the price?"); 
    expensePrice = Number(expensePrice); 
    if (expenseName === "done"){ 
    loopAgain = false; 
    } 


    for(var count = 0; count < approvedExpenses.length; count++){ 
    if (expensePrice < 100) { 
     approvedExpenseTotal = approvedExpenseTotal + expensePrice; 
     approvedExpenses[count] = expenseName; 
     approvedExpensePrice[count] = expensePrice; 
     }else { 
     unApprovedExpenseTotal = unApprovedExpenseTotal + expensePrice; 
     unApprovedExpenses[count] = expenseName; 
     unApprovedExpensePrice[count] = expensePrice; 
     } 
    } 
} 

document.write("APPROVED EXPENSES:<br>"); 

for(var count = 0; count < approvedExpenses.length; count++){ 
     document.write(approvedExpenses[count] + ": "); 
     document.write(approvedExpenses[count] + "\n"); 
    } 

document.write("EXPENSES NEEDING MANUAL APPROVAL:<br>"); 

for(var count = 0; count < unApprovedExpenses.length; count++){ 
     document.write(unApprovedExpenses[count] + ": "); 
     document.write(unApprovedExpenses[count] + "\n"); 
    } 

document.write("TOTALS:<br>"); 

document.write("Total approved expenses: $" + approvedExpenseTotal + "<br>"); 
document.write("Total expenses waiting approval: $" + unApprovedExpenseTotal + "<br>"); 
+2

Что вы имеете в виду под " не работают "? На данный момент это в основном похоже на то, что вы просите кого-то написать свою программу - попробуйте переписать свой вопрос на проблему, которую вы используете с массивами. – Justin

+0

Я имею в виду, что когда он выводится на экран, ничего там нет, и массив не будет работать. Я просто хочу, чтобы кто-то сказал мне, почему он не работает, поэтому я могу это исправить. И нет, я не хочу, чтобы кто-то писал это, потому что вся программа прямо перед вашими глазами, но что-то не работает. – user3014364

ответ

1

Ваша программная логика немного странная. = b Конкретная проблема в том, почему ничего не отображается, является то, что ваши массивы пусты.

И они пусты, потому что цикл for не работает.

И ваш цикл for не запускается, потому что условие в вашем цикле for основано на «approvedExpenses.length», которое всегда равно нулю.

Попробуйте прочитать код сверху вниз (поток выполнения) и представить все значения ваших переменных. Он должен показать, почему approvedExpenses.length равно нулю.

(также в ваш цикл, как вы устанавливаете значения может закончиться перезапись существующих значений, так как счетчик всегда начинается с 0, где могут быть существующие данные)

+0

Ничего себе это помогает! – user3014364

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