首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++是否会在嵌套的' if‘语句中运行所有代码,即使这会改变外部语句的布尔值?

C++是否会在嵌套的' if‘语句中运行所有代码,即使这会改变外部语句的布尔值?
EN

Stack Overflow用户
提问于 2015-03-26 10:41:24
回答 3查看 218关注 0票数 0

我的C++代码中有几条C++语句(一条嵌套在另一条代码中),我希望确保它们能像我预期的那样运行-代码如下:

代码语言:javascript
运行
复制
if(state == entry){
    if(abs(distance < 0.05){
        state = arcing;
        ...
        startAngle = positionAC;
    }
    // Some more statements here...
}

如果满足了第二个if语句的条件,那么我的注释"//这里有更多的语句.“的代码会不会.既然state的值已经更改为arcing而不是entry,那么现在运行吗?我认为应该运行它们,因为当第一个条件为真时,代码仍将执行,尽管现在不再是了。这是正确的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-26 10:44:28

如果-检查

代码语言:javascript
运行
复制
if(state == entry)

将精确执行一次,此时在代码中到达该行。

从那时起,如果状态或条目的值被修改了--如果到达该行时state等于entry,则if -块中的全部代码将被执行。

票数 4
EN

Stack Overflow用户

发布于 2015-03-26 10:44:22

如果If语句中的条件

代码语言:javascript
运行
复制
if(state == entry){

将被计算为true (在这里只计算一次),然后执行if的复合语句。

票数 0
EN

Stack Overflow用户

发布于 2015-03-26 11:39:26

注释下的语句将精确执行一次,除非第一个条件本身不在循环或递归调用的方法中。

但是,如果要确保注释后的代码仅在状态==条目在该时间点执行时才能执行,则可以更改代码如下

if((状态==条目)&(abs(距离<0.0 5)){

代码语言:javascript
运行
复制
state = arcing;

...

startAngle = positionAC;

}

否则,如果(状态==条目)

{

代码语言:javascript
运行
复制
// Some more statements here...

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29276409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档