<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