2012-11-09 5 views
-3

Ceci est mon code HTML, pour une raison quelconque, ce code prend seulement trois valeurs, il ne prend pas plus de trois valeurs, et quand j'essaie d'entrer plus, il n'affiche que les trois premières valeurs I entré. Quelque chose ne va pas avec mon code mais je ne pouvais pas le comprendre. S'il vous plaît aider.javascript calcul de la moyenne et la moyenne

var gradeCounter, gradeValue, total, average, grade; 

total = 2; 
gradeCounter = 0; 
grade = prompt("enter grade, -1 to Quit:", "0"); 
gradeValue = parseInt(grade); 

while (gradeValue != -1 && gradeValue > 65) document.write("<br>" + gradeValue + " pass</br>"); 
    total = total + gradeValue; 
    gradeCounter = gradeCounter + 1; 
    grade = prompt("enter grade, -1 to Quit:", "0"); 
    gradeValue = parseInt(grade); 
} 

if (gradeCounter != 0 && gradeValue <= 65) { 
    document.write("<br>" + gradeValue + " fail</br>"); 

    total = total + gradeValue; 
    gradeCounter = gradeCounter + 1; 
    grade = prompt("enter grade, -1 to Quit:", "0"); 
    gradeValue = parseInt(grade); 
    average = total/gradeCounter; 

    document.write("<br>total grade: " + gradeCounter + "</bt>"); 
    document.write("<br>average passing grade:" + average + "</br>"); 
} 
else document.write("total grade:" + 0); 
+1

Bienvenue sur [SO]; S'il vous plaît examiner la [faq]. De plus, lisez [l'aide à la modification] (http://stackoverflow.com/editing-help) pour apprendre à utiliser le démarquage à son plein potentiel. Si vous montrez aux gens que vous avez investi du temps à poser une question décente et bien écrite, ils vont investir du temps pour y répondre. – zzzzBov

+0

cela semble comme il devrait boucle infiniment pour les grades supérieurs à 65: 'while (gradeValue! = -1 && gradeValue> 65) document.write ("
"+ gradeValue +" passer
");' –

+1

je suis gentil de regretter d'avoir pris le temps de lire ceci. –

Répondre

1

Vous n'avez pas besoin de beaucoup de code.

J'ai mis à jour votre code, et cela devrait fonctionner. Jetez un coup d'oeil.

jsFiddle: http://jsfiddle.net/tDjA9/1/embedded/result/

var gradeCounter =0, gradeValue = 0, total = 0, average, grade; 

//Loop 
while (gradeValue != -1 && gradeValue <= 65) { 

    //Prompt the user 
    grade = prompt("enter grade, -1 to Quit:", "0"); 
    //Parse the prompt result to a int 
    gradeValue = parseInt(grade); 

    //Check if gradeValue is smaller than 0 
    if(gradeValue < 0){ 
     //If it is, then we can finish adding grade 
     document.write("<br>Finish adding grades"); 
    } else{ 
     //Add gradeValue to total score 
     total += gradeValue; 
     //Increment the number of grades by 1 
     gradeCounter += 1; 
     //Output to the user 
     document.write("<br>" + gradeValue + " pass</br>"); 
    } 
} 

//Calculation 
total = total + gradeValue; 
average = total/gradeCounter; 

//Output 
document.write("<br>total grade: " + gradeCounter + "</bt>"); 
document.write("<br>average passing grade:" + average + "</br>");​