首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

"if.else if.else" 可不可以用"if.if.else"代替?解决办法

2012-03-16 
if....else if....else 可不可以用if....if....else代替?因为我发现用多个 if 代替 if & elseif

"if....else if....else" 可不可以用"if....if....else"代替?
因为我发现用多个 "if "代替 "if "& "else   if "的结构,执行结果似乎是一致的,而我也没找到它们有什么不同:

第一种写法:

if(条件1)
{
      ...
}
else   if(条件2)
{
      ...
}
else     //其他情况
{
      ...
}

第二种写法:

if(条件1)
{
      ...
}
if(条件2)
{
      ...
}
else     //其他条件
{
      ...
}

但几乎所有人都用else   if这样的写法,说明else   if很可能是不能完全被if替代的,那么上面两种写法什么情况下结果会不一致呢?

[解决办法]
前一种比较的次数少一些.
[解决办法]
第一种写法,当条件1满足后,不会再去测试后面的条件.

第二种写法,当条件1满足后,还会再去测试后面的条件.

[解决办法]
这样可以看出它们的区别:
bool f1(){cout < < "f1 " < <endl;return 1;}
bool f2(){cout < < "f2 " < <endl;return 1;}
bool f3(){cout < < "f3 " < <endl;return 1;}
bool f4(){cout < < "f4 " < <endl;return 1;}
int main1()
{
if(f1())
{}
else if(f2())
{}
else if(f3())
{}
else if(f4())
{}
else
{cout < < "==== " < <endl;}
return 0;
}
int main2()
{
if(f1())
{}
if(f2())
{}
if(f3())
{}
if(f4())
{}
else
{cout < < "==== " < <endl;}
return 0;
}

热点排行