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

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

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