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之前,以提高程序的执行效率?
...全文
1608 10 打赏 收藏 转发到动态 举报
写回复
用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
源码下载地址: https://pan.quark.cn/s/40677b766bda "ContextCapture 倾斜摄影快速、创新及全面空三建模与单机集群硬件部署方案2018" 此资源聚焦于倾斜摄影(ContextCapture)空三建模及单机集群硬件部署方案,致力于为用户呈现最快、最优成本效益的台式工作站、移动工作站、并行集群的多样化部署选择。以下是该资源的详细知识点概述: 一、相关设备型号说明 * UltraLAB 是西安坤隆计算机科技有限公司推出的专属图形工作站品牌,具备三大卓越优势:顶尖的计算硬件架构、精准的行业应用定制服务、专业的硬件系统优化工艺。 二、硬件部署方案 * 台式工作站部署建议:设备特色在于当前市场上最快的台式计算架构,适用于办公场景下,部门层级常规的倾斜摄影空三处理、三维建模。 * 便携式工作站部署建议:设备特色在于当前市场上最快的移动计算架构,适用于移动倾斜摄影的空三处理、三维建模工作站。 * 大数据量处理工作站推荐:设备特色在于极限自动超频加速与16个并行存储构造,具备空三处理和三维建模最强的计算性能及海量高速并行存储性能。 * 多设备并行计算集群部署建议:针对海量图像数据计算产生的巨大需求,单机计算能力处理时间过长,效率不高,通过多台机器并行集群,进行空三处理、三维建模,显著减少处理时间。 三、部署方案深入解析 * 2.1 倾斜摄影建模(台式工作站)部署方案:设备特色在于最高的计算处理能力~6核5.2GHz,内存最大配置可达64GB,配备最新图灵架构的RTX显卡,相比市场其他品牌机器(单CPU、双Xeon处理器)更快、更具成本效益。 * 2.2 倾斜摄影建模(移动便携式工作站)硬件部署方案:设备特色在于最高的计算处理能力~6...

65,211

社区成员

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

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