我爲特許學校工作,我只是在學習javascript。我有一些代碼是由以前填補我的職位的人編寫的,在我看來,它應該可行,但事實並非如此。javascript中的五個值的平均值
這是我在自定義HTML網頁在我的SIS:
GED Status: <script language="Javascript">gedCheck('~(ELC_tspp_GED_read_score)','~ (ELC_tspp_GED_wri_score)','~(ELC_tspp_math_GED_score)','~(ELC_science_state_exam_score)','~(soc_sci_state_exam_score)')</script>
,這似乎是從不同的數據庫字段正確檢索值,如JavaScript的程序評估每個值,以確保它的至少410但這是儘可能去......
這裏的JavaScript代碼例程:
function gedCheck(read,wri,math,sci,soc) {
if(read < 0 && read > 1000)
read = 0;
if(wri < 0 && wri > 1000)
wri = 0;
if(math < 0 && math > 1000)
math = 0;
if(sci < 0 && read > 1000)
read = 0;
if(soc < 0 && soc > 1000)
soc = 0;
if ((read >= 410) && (wri >= 410) && (math >= 410) && (sci >= 410) && (soc >= 410)) {
if(read+wri+math+sci+soc >= 2250)
document.write("PASSED")
}
else
document.write("NOT PASSED")
}
它應該被檢查每一個在日比分e GED測試至少爲410分,所有分數的總和應至少爲2250.然而,它並沒有達到最後一部分。如果所有分數超過410,它將返回「PASSED」。
我試過這個,但它也不起作用。
function gedCheck(read,wri,math,sci,soc) {
if(read < 0 && read > 1000)
read = 0;
if(wri < 0 && wri > 1000)
wri = 0;
if(math < 0 && math > 1000)
math = 0;
if(sci < 0 && read > 1000)
read = 0;
if(soc < 0 && soc > 1000)
soc = 0;
if ((read >= 410) && (wri >= 410) && (math >= 410) && (sci >= 410) && (soc >= 410)) {
if(read+wri+math+sci+soc/5 >= 450)
document.write("PASSED")
}
else
document.write("NOT PASSED")
}
會有人請幫助我工作了這一點,因此無論是均線全部5個號碼,並返回「通過」只有當平均是450,或者乾脆將所有5個號碼,並返回「通過」只有當總和是2250或更大?
如果(讀< 0 && read > 1000): 至於你說你只是學習,一個技巧是,這將永遠,永遠如此。你在這裏問的是「在同一時間讀小於0,但也超過1000,」? ||應該用來代替&&。 &&表示「如果這和這個」,||意思是「如果這個,還是這個」。 ||在你的情況下,將其改爲「如果讀數小於零,或者它大於1000,則執行此操作」,這是可能的,因爲數學中的數字既不小於零也不超過1000. 注意:是shift + \鍵,並且被稱爲「管道」 – Gyhth 2013-02-19 19:28:50
我認爲這就是他爲什麼這麼做的原因 - 也許他只是想確保每個值都設置爲0以開始使用?或者一個人從不這樣做? – DataBased 2013-02-19 19:36:20
在那裏,它永遠不會將它設置爲零,因爲這是後面的代碼,因爲它永遠不會小於0並且大於1000,它永遠不會將它設置爲0.它是合理的如果滿足這兩個條件中的任何一個(0最小值,我認爲最大值爲1000分),那麼他希望將其設爲零,但這就是爲什麼您要使用OR(||)運算符而不是AND(&&)。 if之後的代碼,如read = 0,僅在if塊返回true時執行。閱讀< 0 && Read > 1000將永遠不會返回true,因此,它永遠不會將讀取設置爲0.與其他值相同。 – Gyhth 2013-02-19 19:39:52