if (tri->LeftChild) //条件1
return; //操作1
if ( tri->BaseNeighbor && (tri->BaseNeighbor->BaseNeighbor != tri) ) //条件2
Split(tri->BaseNeighbor);到return这里没有问题。如果条件1满足,那么结束该方法。关键它与下一个条件结构的逻辑连续上怎么理解。是条件1不满足再去判断条件2?还是条件1满足了,那么执行操作1,然后接下去判断条件2,以此类推?最好能给个流程图,我一直不太懂这样直接顺序写两个if结构还没有else部分的,在逻辑上到底是怎么运行的
3 回答
已采纳
慕函数1130379
TA贡献7条经验 获得超2个赞
从上述代码上理解,条件1满足,则退出执行。在条件一不满足的情况下才会执行条件二。
两个if结构的意思是,只要满足条件,就会进入方法体的执行。
你的思路会乱,是因为操作1的return干扰了你的思路,你可以先把return屏蔽,看作其他代码,比如赋值代码,这样就比较好理解两个if的结构了
Must_so
TA贡献11条经验 获得超18个赞
执行 Split(tri->BaseNeighbor);的条件是:条件1不满足且条件2满足
这很好理解,如果条件1满足则return不会向下执行,所以当条件1不满足才会向下执行下面的语句
而下面的语句则是if语句,满足则执行,不满足不执行
所以上面的代码相当于:
if (tri->LeftChild) //条件1 return; //操作1 else{ if ( tri->BaseNeighbor && (tri->BaseNeighbor->BaseNeighbor != tri) ) //条件2 Split(tri->BaseNeighbor); //如果后面还有语句在else内部执行 }
- 3 回答
- 0 关注
- 1932 浏览
添加回答
举报
0/150
提交
取消