return i是返回到哪里,給個(gè)確切的地方
#include <stdio.h>
int getIndex(int arr[5],int value)
{
??? int i;
??? for(i=0;i<5;i++)
??? {
??????? if(arr[i] == value)
??????? {
??????????? return i;
??????? }
??? }
??? return -1;
}
int main()
{
??? int arr[5]={3,12,9,8,6};
??? int value = 8;
??? int index = getIndex(arr, value);????? //這里應(yīng)該傳什么參數(shù)呢?
??? if(index!=-1)
??? {
??????? printf("%d在數(shù)組中存在,下標(biāo)為:%d\n",value,index);????????????
??? }
??? else
??? {
??????? printf("%d在數(shù)組中不存在。\n",value);???
??? }
??? return 0;???
}
雖然說是輸入錯(cuò)誤但是輸出是正確的,我想問幾個(gè)問題
在執(zhí)行循環(huán)結(jié)構(gòu)時(shí)候在執(zhí)行完return i;是立刻跳出循環(huán)結(jié)構(gòu)然后結(jié)束整個(gè)getlndex函數(shù)嗎,但是答案為什么要加break
概念上說return的返回值是給主函數(shù),那返回到主函數(shù)的哪里,是返回到getlndex(arr, value)?
答案getlndex函數(shù)定義了個(gè)index這樣有什么好處
2018-11-07
1.是,只要執(zhí)行到return i;循環(huán)就結(jié)束了,return會,賦值不會。break會結(jié)束本層循環(huán);
2.返回到getlndex函數(shù)然后賦值給 index?了。
3.定義index的好處是,函數(shù)內(nèi)部只會有一個(gè)返回值一個(gè)出口;
你這一段就會有兩個(gè)出口,好像是便于后期維護(hù)和排錯(cuò),比如貼的圖,要在兩個(gè)地方驗(yàn)證;
2018-10-26
第一你寫的循環(huán)體出錯(cuò)了,少了一個(gè)else,第二執(zhí)行完return i之后不會跳出循環(huán)體,還循環(huán)直到i不滿足條件時(shí)才會跳出循環(huán)。
對,返回到? int index = getIndex(arr, value);(等號的右邊,然后在賦值給index)
我看了答案,感覺有些地方很多余,不需要在函數(shù)getindex中定義index也可以