if...if...和if...else if区别?

e3e4e7 2010-06-30 09:44:01
为什么在JS中,有时用if(...){...}
if(...){...}

和用 if(...){...}
else if(...){...} 有时意思不一样了。
省备掉else有时会出错!十分不解!期待答案....
...全文
307 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
e3e4e7 2010-07-01
  • 打赏
  • 举报
回复
刚学的,的确很悲剧。现实中没有任何人指导,有问题就是看书,或上网查,查不到就只能在这里请教大家了。对于以上的问题确实不明白,谢谢大家。刚才好好分析了一下,错误主要出在这个地方:

错误出在以下地方:
if (...) { ... }

if (...) { ... }//这一行前面没有加 else

else{....} //请问有这种写法吗? 这一行花括号里面的在什么时候会执行,什么时候不会执行。为什么

呢?谢谢!

//===========================================================================

以前这样理解:
if (...){ ... }
else{....} //如果上面的if不成立,就执行下面的else一行,如果上面的if成立else一行就不执行。

////////////////////所以以为上面的语句和下面的语句一样:


if (...){ ... }

if (...){ ... }//这里多加了一行,但前面没有加else;

else{....} //原以为:如果上面的if成立,这一行else后面花括号的也不会执行,结果出问题了,但还不太明白为什么这里的else后面花括号里的语句不管上面的2个if成立与否都会执行???为什么呢???

(对不起大家,开始不知道错到底出在哪里,所以问题没拟完整。)

龙根 2010-07-01
  • 打赏
  • 举报
回复
悲剧啊,lz是刚出家的啊
lemon520 2010-07-01
  • 打赏
  • 举报
回复

if (...) { //这里如果为真
......
} else if(...) { //那这里就不判断了,直接跳过
......
} else if(...) { //这里也不判断了,直接跳过
......
}
-------------
if (...) { //这里如果为真
......
}
if(...) { //这里还是要判断,因为跟上面那个if没有关系
......
}
if(...) { //这里还是要判断,因为跟上面那两个if都没有关系
......
}

sillyfish521 2010-07-01
  • 打赏
  • 举报
回复
很基础的东西啊
多看看书,写点小例子试试就明了了
liuzuowei007 2010-07-01
  • 打赏
  • 举报
回复
两个if都会执行,而if和else只会有一个执行
hoojo 2010-07-01
  • 打赏
  • 举报
回复

if (true) {
这里执行了
} else if(true) {
这里不执行
}
-------------
if (true) {
这里执行了
}
if(true) {
这里执行
}

从基础的书看起,会一门语言其他的基本语法类似
passself 2010-07-01
  • 打赏
  • 举报
回复
if..if就是在这几个if的情况下有别的情况但是这里是不考虑的,if..else if也是这些if情况下最后加上else的话就是所有的情况都包括了,否则和if..if在情况上是没有什么区别的
leejelen 2010-07-01
  • 打赏
  • 举报
回复
if if 的话,无论第一个前面有无执行,只要符合条件,都会执行。
if else if的话,只有一个会执行。当if成立之后,后面的就不执行了!
victor_woo 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 leemiki 的回复:]
if(...){...}
if(...){...}
两者if语句无任何关系,只要条件符合都可以执行

if(...){...}
else if(...){...}
是一个整体,最多只有一条能执行

所以当有一个条件满足时候,那上面两种写法意思就是一样的
[/Quote]

不一样的!
simaa0106 2010-06-30
  • 打赏
  • 举报
回复
在所有的语言中。
int a=1,b=0,c=0;
if(a>b){
b=a;
}
if(a>c){
c=a;
}//这时候 a=1,b=1 c=1
int a=1,b=0,c=0;
if(a>b){
b=a;
}else if(a>c){
c=a;
}//这时候就会先判断第一个if满足不满足,如果不满足,就会继续执行第二个,如果第一个满足了,就不执行第二个了。a=1,b=1,c=0
leemiki 2010-06-30
  • 打赏
  • 举报
回复
这不只是在JS中,几乎所有语言都是这样,建议楼主基础打扎实
leemiki 2010-06-30
  • 打赏
  • 举报
回复
这不是只是在JS中,几乎所有语言都是这样,建议楼主基础打扎实
wzmlove007 2010-06-30
  • 打赏
  • 举报
回复
...........

楼主的基础...

if
else if这样的话如果第一个If满足条件就不会执行下一个else if了
if
if
即使第一个if满足条件,仍会执行下面的if
leemiki 2010-06-30
  • 打赏
  • 举报
回复
if(...){...}
if(...){...}
两者if语句无任何关系,只要条件符合都可以执行

if(...){...}
else if(...){...}
是一个整体,最多只有一条能执行

所以当有一个条件满足时候,那上面两种写法意思就是一样的
xiaojing7 2010-06-30
  • 打赏
  • 举报
回复
建议看看基础
zoujp_xyz 2010-06-30
  • 打赏
  • 举报
回复
楼主要看看基础的知识了。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧