导航

« SQL防注入代码JScript版链接指示符extern "C"的使用 »

由Jscript中比较大小想起的一个问题

写了一个函数,用到if判断语句,大概意思是:

if(0<id<10){语句1;}
else if(id>10){语句2;}
else{语句3;}

结果呢,无论id为何值,都只执行语句1,纳闷...。
id强制转换为整数parseInt(id),问题依旧。
查看parseInt(id)的类型,发现为number,按理说可以比较大小的,十分困惑...
在if语句前输出id看看结果,发现id即使id为11,还是执行语句1。
后来。。。
突发奇想,把id判断的改为:

if(id>10){语句2;}
else if(0<id<10){语句1;}
else{语句3;}

OK,发现没问题了,但是留下了一个不易发现的小问题,当id=10的时候还是执行语句1,按理说应该是语句3才对。
继续思考。。。
why?
想来想去,恍然大悟。
原来,问题就出在

0<id<10

这句话,它在判断

id>0

成立时就不会再去判断

id<10

是否成立了。所以应该写为

id>0&&id<10


这种情况经常会碰到,所以要格外小心。
想起以前做过的一道C题,也是类似的问题。都怪C语言没好好学。忏悔。。。
  • quote 1.bamboo
  • 想想,我们高中的时候老师还教我们if ...else ...end...之类的一些,居然是Jscript语言,那个时候什么都不懂,可是到了大学居然不教我们什么,就学了计算机基础...汗,惭愧呀我!
  • 2006-12-23 22:49:01 回复该留言
  • quote 2.rchlz
  • 你们高中学这些?
    我高中的时候就只见过计算机长啥样
  • 2006-12-24 17:25:38 回复该留言
  • quote 3.bamboo
  • 在高三学过一些,还依稀记得老师讲什么Q-BASIC语言。一个星期才一节课,前两年的时间都是瞎混,多数时间是在偷偷的游戏,那个时候学校机房还没有连网,还不能QQ,呵呵。
    Merry Silent Night!
    May everything goes well in the coming new year!
  • 2006-12-24 21:43:05 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By SunK

Copyright 2005-2006 sunk.cn 蜀ICP备06007105号