2016-03-08 77 views
-1

我不知道为什么这段代码破坏,如果你们可以帮助我,将不胜感激。它在循环中获得第一个输入后就会中断。在循环中输入javascript后破坏

<html> 
<script type="text/javascript"> 
gradeWeight = new Array(5); 
    gradeWeight[1] = 12; 
    gradeWeight[2] = 18; 
    gradeWeight[3] = 20; 
    gradeWeight[4] = 20; 
    gradeWeight[5] = 20; 
    var totalGrades; 
    var count = 1; 
    var covertToDecimal = Math.pow(10, 2); 
    var grade = ""; 
    var converterdGrade; 
    var weightedGrade; 
    while (count <= 4) { 
     grade = prompt("Enter grade number", count, " in percent format without the percent sign. Ex. 100 for 100%.", 0); 
     alert("Do I display after prompt").toString; 
     //Breaks Here 
     convertedGrade = parseFloat(grade) * convertToDecimal; 
     alert("Do I display after converting grade"); 
     weightedGrade = convertedGrade * parseFloat(gradeWeight[count]); 
     totalGrades = totalGrades + weightedGrade; 
    count++; 
    } 
    totalGrades = totalGrades * 100; 
    document.Write("Your total weighted grade is", totalGrades); 
</script> 
</html> 
+0

什么是总体目标?什么是错误?请在你的问题中更具体。 – Wowsk

回答

0

有我在下面概述了几个错误。

JSFiddle

// Mistake: Added an extra weight so the total weights sum to 100 
// Additionally it's bad practice to have undeclared variables 
var gradeWeight = new Array(6); 

// Mistake: Arrays are 0-indexed 
gradeWeight[0] = 12; 
gradeWeight[1] = 18; 
gradeWeight[2] = 20; 
gradeWeight[3] = 20; 
gradeWeight[4] = 20; 
gradeWeight[5] = 10; 

// Mistake: This variable was uninitialized 
var totalGrades = 0; 

// Mistake: Typo here 
var convertToDecimal = Math.pow(10, 2); 

// A for loop accomplishes the same thing and is easier to follow 
for (var i = 0; i < gradeWeight.length; ++i) { 
    // Mistake: Format the string like this. 
    var grade = prompt("Enter grade number " + (i + 1) + " in percent format without the percent sign. Ex. 100 for 100%."); 
    // Mistake: Should be divide 
    var convertedGrade = parseFloat(grade)/convertToDecimal; 
    var weightedGrade = convertedGrade * gradeWeight[i]; 
    totalGrades += weightedGrade; 
} 

alert("Your total weighted grade is " + totalGrades); 
+0

谢谢!!!!!!!!! –

+0

@TravisOuellette没问题,很高兴帮助!如果它起作用,您应该将其标记为已接受,以便人们知道问题已得到解答。 – Dehli

0

ur变量的索引0在哪里?

gradeWeight = new Array(5); 
    gradeWeight[1] = 12; 
    gradeWeight[2] = 18; 
    gradeWeight[3] = 20; 
    gradeWeight[4] = 20; 
    gradeWeight[5] = 20; 

做到这一点(应该运行)

gradeWeight = new Array(5); 
    gradeWeight[0] = 12; 
    gradeWeight[1] = 18; 
    gradeWeight[2] = 20; 
    gradeWeight[3] = 20; 
    gradeWeight[4] = 20; 

这就是我可以毫不乌尔错误说