<script ="javscript"/>
function checkQuantity()
{
function noCharge(intQuantity){
if (intQuantity > 100) {
return true;
}
if (intQuantity < 100) {
return false;
}
return true;
}
checkQuantity=parseInt(prompt("Please enter the quantity of light bulbs",""))
if ((intQuantity)==true)
{
alert("Your light bulbs will arrive shortly. There is NO delivery charge")
}
else if ((intQuantity)==false)
{
alert("Your light bulbs will arrive shortly. There will be a delivery charge of £5.99")
}
else
{
alert("Please enter an amount")
}
}
</script>
0
A
回答
1
您的代碼有一些錯誤。
入住這live example
function checkQuantity() {
function noCharge(intQuantity) {
if (intQuantity > 100) {
return true;
}
if (intQuantity < 100) {
return false;
}
return true;
}
var amount = noCharge(parseInt(prompt("Please enter the quantity of light bulbs", "")));
if (amount == true) {
alert("Your light bulbs will arrive shortly. There is NO delivery charge")
}
else if (amount == false) {
alert("Your light bulbs will arrive shortly. There will be a delivery charge of £5.99")
}
else {
alert("Please enter an amount")
}
}
checkQuantity();
1
兩個顯而易見的問題(當然,有兩件事合作,導致同樣的錯誤):
- 你永遠叫
noCharge
。而不是if ((intQuantity) == true)
,你應該說if (noCharge(intQuantity) == true)
(或更好,if (noCharge(intQuantity))
...見下文)。 (intQuantity)
只要它不是false
,null
,undefined
或0就可以了。就你而言,這是絕大多數時間。
和一對夫婦的風格調:
- 如果你返回一個布爾值,你真的沒有把它比任何東西。而不是說
if (noCharge(intQuantity) == true
,你可以只說if (noCharge(intQuantity))
。要查看是否有錯誤,請使用!
運算符,如if (!noCharge(intQuantity))
。 - 您也不必比較兩次。布爾值是真或假。
else if...
部分可以替換爲else
,你可以完全擺脫第三部分。 - 您在
noCharge
中的規則比他們的要複雜得多。當且僅當數量至少爲100時,當前函數才返回true。由於>=
涵蓋了這一點,因此可以將代碼縮減爲一行:return (intQuantity >= 100)
。 - 匈牙利符號已死亡。讓它安息吧。
與所有的固定:
function checkQuantity() {
function noCharge(quantity) {
return (quantity >= 100);
}
var quantity = parseInt(prompt("Quantity:", ""));
if (noCharge(quantity)) {
alert("No delivery charge");
} else {
alert("Delivery charge of $5.99");
}
}
我個人不因功能懶得檢查是否東西至少100 ......但如果規則我可以看到使用了它變得更加複雜。
相關問題
- 1. 即使它識別輸入,TableView不會更新數據?
- 2. PHP - 值賦值給一個變量只有當它不存在虛假
- 3. 當它不是一個標識符時找不到標識符?
- 4. 只有當它包含某個值時,纔會重置值
- 5. 只有當它是一個指針
- 6. 如何增加一個計數器只有當它是一個新的會話?
- 7. PHP只有當它不是另一個子字符串的一部分時纔會找到子字符串
- 8. 選擇輸入/字符串,而不是它的所有
- 9. 它是否會有多個自動識別
- 10. 當菜單是鼠標懸停時,它會消失,當我點擊一個輸入,我把它放在焦點
- 11. Rails.blank?當它不應該返回true時
- 12. 有一個輸入的字段取決於其它輸入
- 13. 識別一個數字是連續輸入兩次
- 14. 代碼塊不會識別它寫入的類的頭部?
- 15. 字典中的隨機密鑰在作爲輸入輸入時無法識別它的值
- 16. vb.net:如何調用一個函數,只有當它存在時
- 17. 只有當它有一些值時才顯示textarea
- 18. 只有當一個變量設置爲true時才調用一個函數
- 19. 當一個類有一個相同類的字段時,它不是StackOverflowException嗎?
- 20. 當textIsSelectable設置爲true時,Android TextView不會更新它的文本
- 21. 當輸入字符ñ進入搜索,它從數據庫檢索所有行
- 22. 當使用strtol並輸入2個零(00)時,它只返回一個零點?
- 23. 程序輸入一個數字,如果它的一個階乘數然後輸出階乘系列其他假
- 24. 如果用戶輸入一個字母而不是數字告訴他們它不是一個數字
- 25. 如何將一個默認值放入一個'輸入',當用戶按下輸入它會消失?
- 26. 拾取器不工作時,它只有一個值
- 27. 輸入日期,它會自動知道它是哪一天
- 28. 「Object.ReferenceEquals」始終是假的,因爲它是帶一個值類型
- 29. 警告:當只有一個指定參數,它必須是一個數組
- 30. 當數字領先於零時,Javascript輸出會有所不同
不應該「javscript」是「JavaScript」? – 2011-05-09 21:53:53
感謝您注意到,我很抱歉 – Cool66 2011-05-09 21:54:31
它說intQuantity還未定義=/ – Cool66 2011-05-09 21:55:14