这里为什么要加break;

来源:6-6 数组的应用(二)

qq_慕圣9533115

2019-01-19 14:42

#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;
           return index ;
           break;
       }
         
      
      
      
    }
    return -1;
}

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

符合条件返回之后,不是函数就得出结果不用循环了吗?为什么还要加break;

写回答 关注

3回答

  • 慕标2568847
    2019-05-07 14:16:16

    函数有且只能返回一个返回值 所以执行到第一个return就返回 不会执行第二个return


  • 慕标2568847
    2019-05-07 14:11:27

         if(arr[i]==value)
          {
             index=i;
             break;
          }    
        }
        return -1;
    }


    如果我这样执行的 无论何时都是返回-1,在此 break只是终止循环 并不返回一个值  往下运行才能返回一个-1

    而你的是先返回一个index 再终止循环


  • 慕标2568847
    2019-05-07 14:08:24

    如果你不加break 就跳出循环执行return-1;如果符合条件先执行return index  再终止运行 不往下运行则返回的值是index

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926866 学习 · 21068 问题

查看课程

相似问题