2013-12-11 7 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 루프의 조건이 항상 "approvedExpenses.length"을 기반으로하기 때문에 for 루프가 실행되지 않습니다. 항상 0입니다.

코드를 위에서 아래로 (실행 흐름) 읽고 변수의 모든 값을 그려보십시오. approvedExpenses.length이 0 인 이유를 밝혀야합니다.

(또한 이내에 루프, 카운터는 항상 기존 데이터가있을 수 있습니다 0에서 시작하기 때문에 기존 값을 덮어 끝낼 수 값을 설정하는 방법) 당신이 뜻하는 일

+0

와우이 많은 도움이됩니다! – user3014364

관련 문제