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

用与不用break的区别

例子里也没有break,为什么题里的for就得用break?

提问者:慕少4077343 2019-03-02 13:07

个回答

  • qq_慕侠6387112
    2019-03-15 16:00:10

    如果不用break;跳出,就得把相同数放在数组最后让程序自己跳出:

    #include <stdio.h>

    int getIndex(int arr[4],int value)

    {

        int i;

        int index;

        for(i=0;i<4;i++)

        {

           /* 请完善数组查询功能 */

           if(arr[i]==value)       

           {

               index=i;

               //break;

           }   

          else

          {

              index=-1;

          }

          

        }

        return index;

    }


    int main()

    {

        int arr[4]={3,12,9,8};

        int value = 8;

        int index = getIndex(arr , value);      //这里应该传什么参数呢?

        if(index!=-1)

        {

            printf("%d在数组中存在,下标为:%d\n",value,index);             

        }

        else

        {

            printf("%d在数组中不存在。\n",value);    

        }

        return 0;    

    }


  • blank_boy
    2019-03-02 20:08:53

    因为例子里直接返回的i或者-1,其中return=-1是在for循环外的,即要么在循环结束前就返回了一个i,要不循环完后没有满足条件返回-1,例题返回的index ,是在循环里的,所以我们要先给献给index赋值,break的作用是跳出这个循环,如果不要break那么返回的永远是-1,而用break即如果存在arr【i】=value,就给index赋值为i,也不需要在检录其它的了