我的印象是C中的任何函數只會支持一個返回語句,直到我遇到了一些提到多個返回語句的筆記。我的問題是這些多重返回語句如何工作。任何幫助appriciated。謝謝!多重返回語句如何工作?
1
A
回答
4
時執行將終止功能,其價值將被使用的第一return
聲明。
但是,顯然可以有多個執行路徑 - 並且它們可以返回不同的值。其實在一個非void函數中,每個可能的執行路徑都有返回一些東西。實現這個最簡單的方法顯然是在函數的最後有一個return
聲明。
if(foo)
return 23;
else
return 42;
有some arguments具有隻是在你的代碼的單個return語句;考慮閱讀文章,如果其中任何適用於你。一個很好的例子是總是需要做一些清理的代碼。在這種情況下,您只需要在完成此操作後返回 - 因此,如果您需要返回,您將爲返回值設置一個變量並使用goto
跳轉到函數末尾的清理和返回部分早。無論回報先打將導致退出的功能和控制
0
要交回給調用者。
例如:
int foo(int x)
{
if(x == 0) return 0;
return 1;
}
在這種情況下,如果x
是0
,那麼第一個回報將受到重創,並0
將被退回。如果通過任何其他號碼,則返回第二個返回並返回1
。
0
您的意思是?
int function(int input)
{
if (input == 1) return 1;
else return 0;
}
那麼,他們作爲返回語句。當然,只有在函數中爲每個代碼路徑返回一個聲明纔有意義。
0
如果有其它邏輯塊的回報..然後你可以想見,在函數返回多。
但類似: 回報1; return 2;
沒那麼多。
0
-1
的規則是,如果不包含返回語句,則必須無法達到函數的結尾。
當執行fonction,當你打一個return語句退出功能,無論您身在何處的功能(用於或者如果......裏面)。因此,如果在同一分支中有兩個返回語句,則只會考慮第一個語句。
相關問題
- 1. 多重返回語句一次?
- 2. Java程序:返回語句不工作
- 3. 如何組合返回多行的SELECT語句和INSERT語句?
- 4. 多返回語句STRANGE?
- 5. case語句返回多行
- 6. 如何從語句返回?
- 7. 返回語句vs不返回語句?
- 8. 返回語句如何在遞歸中工作?
- 9. 多mysqli_query語句IF語句不工作
- 10. break語句如何工作?
- 11. Switch語句如何工作
- 12. 如何工作if()語句
- 13. Python如果返回語句
- 14. LINQ語句返回重複記錄
- 15. Java返回語句
- 16. 返回if語句
- 17. 語句返回undefined
- 18. 如果列表重複,如何返回布爾語句?
- 19. 返回語句語法
- 20. SQL從CASE語句返回多個值
- 21. 使用多個返回語句
- 22. PHP Foreach語句問題。多行返回
- 23. PL/SQL Update語句返回多行
- 24. 從sql語句中返回多個值
- 25. 如何從sql語句返回常量?
- 26. 如何從LINQ語句返回值
- 27. 如何讓Postgresql with子句在多個語句上工作?
- 28. sql語句中的insert語句返回多行
- 29. 返回語句與打印語句?
- 30. sqlite3_step(語句)== SQLITE_DONE語句不返回是
我相信'else'是多餘的:) –