2014-03-31 108 views
1

你好我想讓用戶輸入幾個標記,並在最後給出最高分和最低分,但由於某種原因它打印兩次,並在第二次打印無限和想法?JavaScript打印多次

var gradeAwarded; 
var gradeAwarded; 
var repeate = true; 
var max; 
var A; 
var B; 
var C; 
var F; 

var repeat, studentArr = [], markArr = []; 
while (repeat !== 'n' && repeat !== 'N'){ 
    studentArr.push(prompt("Enter Student Name: ")); 
    markArr.push(parseInt (prompt("Enter Student mark: "))); 
    repeat = prompt ("Do you want to enter another student: y/n"); 
} 

Array.prototype.max = function() { 
    return Math.max.apply(Math, markArr); 
}; 

Array.prototype.min = function() { 
    return Math.min.apply(Math, markArr); 
}; 
var min = markArr.min(); 
var max = markArr.max(); 


if (markArr <0 || markArr >100){ 
    alert("Grate out of bounds"); 
}else if (markArr >= 83){ 
    gradeAwarded = "A"; 
    A = +1; 
}else if (markArr >= 70){ 
    gradeAwarded = "B"; 
    B = +1; 
}else if (markArr >= 50){ 
    gradeAwarded = "C"; 
    C = +1; 
}else if (markArr >= 0){ 
    gradeAwarded = "F"; 
    F = +1;              
} 

    document.write("The Highest mark was : "+max); 
    document.write("The Lowest mark was : "+min); 

回答

1

必須||的& &

while (repeat !== 'n' || repeat !== 'N'){ 
    studentArr.push(prompt("Enter Student Name: ")); 
    markArr.push(parseInt (prompt("Enter Student mark: "))); 
    repeat = prompt ("Do you want to enter another student: y/n"); 
} 

代替,你也應該清楚設定在和流程重複變量

+0

你是對的它應該是||但對於一些振振有辭它使一個infenite循環 – HelloWorld

+0

你好,我想顯示像我的數據,以便 學生馬克級 學生馬克級 學生馬克級 學生馬克級 學生馬克 級 如何將我去這這是我的代碼不必介意底部的document.write作爲我作業的另一部分。 – HelloWorld

+0

你問題不清楚。請打開一個網絡問題並進行解釋 –

1

你用這樣的第二次運行它永遠不會運行,因爲重複==「N」腳本while循環。 markArry被重置,這就是爲什麼你第二次運行腳本時無限。

您應該使用do while循環代替。事情是這樣的:

do { 
    studentArr.push(prompt("Enter Student Name: ")); 
    markArr.push(parseInt (prompt("Enter Student mark: "))); 
    repeat = prompt ("Do you want to enter another student: y/n"); 
}while(repeat !=='n' || repeat !=='N'); 

應該工作

+0

羅沒有工作做一個無限循環 – HelloWorld

+0

它爲我工作。嘗試刷新您的瀏覽器 – kyros

+0

我不認爲你發佈了你的整個腳本 – kyros