

為什么前者不一定有回傳值??
這兩者的區別在哪?
原因是為什么
萌新 不懂得太多 希望大佬可以耐心解答 謝謝啦~~~
uj5u.com熱心網友回復:
沒太看明白樓主的意思,但是簡單說一下吧。明顯第一段代碼是有問題的(最起碼那個break不應該放在return后面)。
函式要找到與引數cardId相匹配的那一項并回傳。
肯定是需要讓陣列中的元素一個一個地去比較,如果不匹配,那就下一個來比較,直到找到相匹配的元素或者陣列中沒有(就回傳-1)。
但是第一段代碼只能比較第一個元素,無法讓陣列所有元素進行比較。
因為第一個元素時,執行到if陳述句,肯定會回傳,也就是結果函式。(if-else兩個子句都回傳了)
也就不再比較第二個,第三個元素。。。。
正確的處理邏輯應該是第二段代碼中那么,如果找到,就回傳相應下標,當前元素不匹配的話,就換下一個元素,直接比較完整個陣列后,還沒有找到匹配的元素,說明這個陣列中沒有要找的東西,那就回傳-1, 表示沒找到。
uj5u.com熱心網友回復:
有回傳值是肯定的,假如你的陣列中第一個就不符合條件,那么就直接回傳-1了。后面即使有相同的ID號的也沒有比較,因為return了uj5u.com熱心網友回復:
前者是有的,進入回圈后,每條路都會有回傳值,不是說一定要在最后回傳才是回傳值。只要在每一條路回傳就行uj5u.com熱心網友回復:
前者如果進入不了回圈,自然就不會有回傳值。uj5u.com熱心網友回復:
只要不進外層回圈不就沒有回傳值了嘛uj5u.com熱心網友回復:
如果g_gard_count為0 ,哼哼轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107175.html
標籤:C語言
下一篇:一元多項式相加,幫忙修改
