if?(tri->LeftChild)???//條件1
return;?????//操作1
if?(?tri->BaseNeighbor?&&?(tri->BaseNeighbor->BaseNeighbor?!=?tri)?)??//條件2
Split(tri->BaseNeighbor);到return這里沒有問題。如果條件1滿足,那么結束該方法。關鍵它與下一個條件結構的邏輯連續(xù)上怎么理解。是條件1不滿足再去判斷條件2?還是條件1滿足了,那么執(zhí)行操作1,然后接下去判斷條件2,以此類推?最好能給個流程圖,我一直不太懂這樣直接順序?qū)憙蓚€if結構還沒有else部分的,在邏輯上到底是怎么運行的
3 回答
已采納

慕函數(shù)1130379
TA貢獻7條經(jīng)驗 獲得超2個贊
從上述代碼上理解,條件1滿足,則退出執(zhí)行。在條件一不滿足的情況下才會執(zhí)行條件二。
兩個if結構的意思是,只要滿足條件,就會進入方法體的執(zhí)行。
你的思路會亂,是因為操作1的return干擾了你的思路,你可以先把return屏蔽,看作其他代碼,比如賦值代碼,這樣就比較好理解兩個if的結構了

Must_so
TA貢獻11條經(jīng)驗 獲得超18個贊
執(zhí)行?Split(tri->BaseNeighbor);的條件是:條件1不滿足且條件2滿足
這很好理解,如果條件1滿足則return不會向下執(zhí)行,所以當條件1不滿足才會向下執(zhí)行下面的語句
而下面的語句則是if語句,滿足則執(zhí)行,不滿足不執(zhí)行
所以上面的代碼相當于:
if?(tri->LeftChild)???//條件1 ????return;?????//操作1 ?else{ ?????if?(?tri->BaseNeighbor?&&?(tri->BaseNeighbor->BaseNeighbor?!=?tri)?)??//條件2 ????Split(tri->BaseNeighbor); ????//如果后面還有語句在else內(nèi)部執(zhí)行 }
- 3 回答
- 0 關注
- 1993 瀏覽
添加回答
舉報
0/150
提交
取消