亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何理解如下C語言語句的邏輯結構

如何理解如下C語言語句的邏輯結構

C C# C++
JustV 2016-09-19 13:36:31
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的結構了

查看完整回答
反對 回復 2016-09-19
  • JustV
    JustV
    那和用else把第二個if結構嵌套起來有區別么
  • 慕函數1130379
    慕函數1130379
    在你提供的這個執行代碼上,是沒區別的,如果操作1不是return就有區別。 使用if else的結構,則條件1不滿足之后,才會執行條件2的判斷,如果使用 if if的結構,則無論條件1的判斷如何,條件2還能在執行
?
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內部執行
}


查看完整回答
反對 回復 2016-09-20
?
96hjyd

TA貢獻4條經驗 獲得超1個贊

條件1滿足,就return
不滿足則判斷條件2
兩個if是順序執行的,是不同語句

查看完整回答
反對 回復 2016-09-19
  • JustV
    JustV
    那跟用else把第二個if結構嵌套起來有區別嗎
  • 96hjyd
    96hjyd
    可以相當于把return后面的全部語句用else擴起來
  • 96hjyd
    96hjyd
    但是僅在你這個例子的情況下
  • 3 回答
  • 0 關注
  • 1997 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號