當前位置:編程學習大全網 - 編程軟體 - 編程MDK

編程MDK

最後壹句判斷如果(dis > 900)不寫,就返回4。

因為行刑的時候,dis?小於等於900的值前面已經返回了,這裏必須大於900,所以不用寫if (dis > 900)。

編譯器將測試所有返回的路徑。如果任何路徑沒有返回值,編譯器會警告妳。在妳的例子中,if (dis > 900)返回4,編譯器從語法和邏輯上推斷,下面壹定有else的返回路徑,所以邏輯會完整,但是編譯器沒有找到else,所以警告。妳可能會說else的dis值是“小於或等於”900,這個值在前面的部分已經返回了。這裏加else沒有任何意義。是的,即使添加了else,程序也無法運行到else,但編譯器只需要邏輯路徑的完整性,而“值”是否經過處理,編譯器並不關心。例如,我將其中壹個if(dis > 100 & amp;& ampdis & lt= 225),改為函數:

如果?(dis?& lt=?25?& amp& amp?dis?& lt=?100)

回歸?9;

如果?(foo?(dis))//?在這裏修改它

回歸?8;

如果?(dis?& gt?225?& amp& amp?dis?& lt=?400)

回歸?7;

...?

-

int?foo?(int?dis)

{

回歸?(dis?& gt?100?& amp& amp?dis?& lt=?225)?1?:?0;

}從修改後的if序列來看,編譯器根本無法判斷foo函數裏做了什麽,所以到了if (dis > 900)的時候,100的值到225?如果沒有別的,編譯返回什麽?

所以關於返回路徑,編譯器不能幫妳做什麽,只有妳能做,而且妳知道這裏的dis不能小於等於900,所以妳要做的就是把if (dis > 900)刪除。

  • 上一篇:通過哪些書籍可以增強孩子的邏輯思維能力?
  • 下一篇:深圳嵌入式軟件開發要學哪些東西
  • copyright 2024編程學習大全網