执行问题

[复制链接]
1624|28
 楼主| 宋倩2010 发表于 2016-6-26 14:24 | 显示全部楼层 |阅读模式
if(表达式1)
{
    语句1;
}
else if(表达式2)
{
    语句2;
}
else (表达式3)
{
    语句3;
}
我知道如果表达式1成立就不会执行else if了, 那对于表达式3又是怎么执行啊??
谢谢!
chenho 发表于 2016-6-26 14:26 | 显示全部楼层
如果表达式1和表达式2都不成立,就执行了。
gongche 发表于 2016-6-26 14:27 | 显示全部楼层
这问题。。。有点像:我知道1+1=2,但是2+1=?
huwr 发表于 2016-6-26 14:28 | 显示全部楼层
else (表达式3)

应该是 else if (表达式3) 之误
huanghuac 发表于 2016-6-26 14:30 | 显示全部楼层
else不带表达式
happy_10 发表于 2016-6-26 14:31 | 显示全部楼层

1成立执行1
否则判断2,成立则执行2
1,2都不成立执行3
任何情况只执行其一
冰清玉洁 发表于 2016-6-26 14:32 | 显示全部楼层

最后一个仍然可以是带有判断语句的:
......

else if(表达式3)
{
    语句3;
}
(默认出口)
wenfen 发表于 2016-6-26 14:33 | 显示全部楼层
这是一个串行判断,并行出口结构,当任何if(表达式n)为真,执行语句n ,然后直接至“默认共同出口”(并行),——与后面其它所有else内容无关。否则串行判断下一条件。
正如带有  break;语句的switch/case 结构。
zhuhuis 发表于 2016-6-26 14:34 | 显示全部楼层
在   SAR8_SelectADCChannel(SAR8_P0_0);
进行修改就好了
tian111 发表于 2016-6-26 14:37 | 显示全部楼层
确实,else不带表达式

建议楼主考虑能不能用switch
 楼主| 宋倩2010 发表于 2016-6-26 14:38 | 显示全部楼层
其实这就像在一幢楼里找一个东西,一楼没有就找二楼,二楼没有找三楼,依次找下去。最后找不到就else了。
chenho 发表于 2016-6-26 14:39 | 显示全部楼层
这种多层分支的程序,最好改用swicth!
gongche 发表于 2016-6-26 14:40 | 显示全部楼层

else if 结构我也经常用。
尤其是在复杂的错误处理的时候。
if (错误1) {goto end1;}
else (错误2) {goto end1;}
else (错误3) {goto end1;}
//处理正确的情况
end1:;
 楼主| 宋倩2010 发表于 2016-6-26 14:41 | 显示全部楼层
能不能这样写:
if  (错误1) { }
else if (错误2) { }
else if (错误3) { }
else {处理正确的情况}
end1:   ;
huanghuac 发表于 2016-6-26 14:42 | 显示全部楼层
效果一样
happy_10 发表于 2016-6-26 14:43 | 显示全部楼层
else if ( 错误2 );
else if ( 错误3 );
else { 处理正确的情况 }
end1:   ;

一样吗?
冰清玉洁 发表于 2016-6-26 14:46 | 显示全部楼层
表达式1,2都不成立的时候就执行表达式3了
wenfen 发表于 2016-6-26 14:48 | 显示全部楼层
表达式1不成立,执行表达式2;表达式2不成立,执行表达式3,。是一个嵌套【1,【2,3】】
zhuhuis 发表于 2016-6-26 14:49 | 显示全部楼层
相当于3选一,跟case语句差不多的,
tian111 发表于 2016-6-26 14:50 | 显示全部楼层
else(表达式3)错误吧!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

322

主题

3217

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部
0