问答详情
源自:6-6 数组的应用(二)

这是为什么?

为什么要在

 if(arr[i]==value)

         {

             index=i;

             break;

中加入break?

提问者:北冥乱贼 2019-10-28 20:24

个回答

  • 神都
    2019-11-01 16:07:48

    if只是一个条件判断后施行命令,不跳出循环会继续对index不断赋值

    一直到数组最后值是6,得到判断index=-1;

    可以看出这个代码也只能判断数组第一次出现该值的坐标,如果数组包含多个相同的数值就没办法读取多个坐标

    如果去掉break;将index判断放到getIndex函数内可以把每个情况读取出来

    #include <stdio.h>
    int getIndex(int arr[5],int value)
    {
        int i;
        int index;
        for(i=0;i<5;i++)
        {
           /* 请完善数组查询功能 */
           if(arr[i]==value)       
            {
                index=i;
               // break;
               printf("%d在数组中存在,下标为:%d\n",value,index);
            }else
            {
                
                printf("%d在数组中不存在。\n",value);
            }
        }
        return index;
    }

    int main()
    {
        int arr[5]={3,8,9,8,8};
        int value = 8;
        getIndex(arr , value);      //这里应该传什么参数呢?
       /*   if(index!=-1)
      {
            printf("%d在数组中存在,下标为:%d\n",value,index);             
        }
        else
        {
            printf("%d在数组中不存在。\n",value);    
        }*/
        return 0;    
    }

  • 幕布斯1285651
    2019-10-30 20:50:15

    因为当你判断arr[i]==value后你需要跳出这个循环。