if语句的执行顺序

chyyx1971 2004-12-23 10:29:47
if(条件1)
{
语句1
}
else if(条件2)
{
语句2
}
else
{
语句3
}
1、如果条件1是条件2的一个子集,也就是说如果两个条件都能满足,那么语句1和语句2到底哪个会被执行?
2、这种if-else if-else语句是否是一种顺序结构的语句,判断的顺序是否按照条件出现的前后顺序进行的,即,只有当条件1不满足的时候,才判断条件2,如果条件1满足了,就不再判断条件2了。如果是这样的,那么,如果事先知道条件2出现的几率大于条件1出现的几率时,是否应该把条件2放在条件1之前,以提高程序的执行效率?
...全文
1547 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhou_lion 2004-12-26
  • 打赏
  • 举报
回复
if()
{
}
else
{
if()
{
}
else
{
if()
{
}
else
{
.
.
.
}
}
}

省略一些大括号,你会发现变成了

if()
{
}
else if()
{
}
else if()
{
}
else
{
.
.
.
}
jin_xiaolu2000 2004-12-23
  • 打赏
  • 举报
回复
当然是顺序选择拉,测试的时候只能走一半的代码拉,这个不会改啊

if else

本身应该是 两个分叉,不过是条件跟在IF后面了吗

pascal 比较清楚 if()
then
begin
end
else
begin
end
cizi_nwu 2004-12-23
  • 打赏
  • 举报
回复
呵呵……学习ing……
piaozi2003 2004-12-23
  • 打赏
  • 举报
回复
if...else语句被汇编成跳转指令的顺序执行代码

大致类似于下面的汇编代码

test 条件1
jmp L1
test 条件2
jmp L2
test 条件3
jmp L3

L1: 语句1
.....
jmp L4
L2: 语句2
.....
jmp L4
L3: 语句3
.....
jmp L4
L4:if...else之后的程序代码
.....

所以只要条件1满足,就只会执行语句1。程序根本就不执行判断条件2或条件3处的代码。
r_swordsman 2004-12-23
  • 打赏
  • 举报
回复
自顶向下测试~~~满足了一个if之后就不会再测试其它的if了~~除非else~~~
chyyx1971 2004-12-23
  • 打赏
  • 举报
回复
谢谢楼上的!
不仅回答了我的问题,
而且还让我知道了一种可以解决小问题的方法,自己编一段小程序试试。
ww0713 2004-12-23
  • 打赏
  • 举报
回复
老大,你用的是if...else if耶,那个else就首先排除了与条件1冲突的可能性
举个例题把:
#include<iostream.h>
void main(){
int n;
cin>>n;
if(n>=90) cout<<'A'<<endl;
else if(n>=80) cout<<'b'<<endl;
else if(n>=70) cout<<'c'<<endl;
else cout<<'d'<<endl;
}

Barrypanxmeng 2004-12-23
  • 打赏
  • 举报
回复
1、if-else if-else语句是否是一种分支结构的语句
它的判断顺序是按照条件出现的前后顺序
如:
bool a = true;
bool b = false;
if( a )
std::cout<<"a\n";
else if( a||b )
std::cout<<"a||b\n";
else
std::cout<<"no\n";

char c;std::cin>>c;
输出一定是:a
2、是的,这是优化手段之一
liweiswin 2004-12-23
  • 打赏
  • 举报
回复
1,条件1
2,似乎有点道理。。。坐个沙发等高手
xuzheng318 2004-12-23
  • 打赏
  • 举报
回复
条件1

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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