为了账号安全,请及时绑定邮箱和手机立即绑定

请问,这里的 break 有什么作用,必须要吗?为什么没有了之后是 运行成功,输入错误

#include <stdio.h>

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

{

    int i;

    int index;

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

    {

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

       if(arr[i]==value)

       {

          return i; 

          index=i;

          break;

       }       

       index=-1; 

       

       

       

    }

    return index;

}


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;    

}


正在回答

2 回答

break有大作用的。每次for循环后 index均会被赋值一次,如果不加break,index在达到条件后继续被赋值,就会变成-1,导致运行结果出现错误。所以必须在 arr[i]=value的时候结束该for循环。

2 回复 有任何疑惑可以回复我~
#1

清欢iic

去掉break 程序是可以运行的 但是运行结果是不符合逻辑的
2019-09-06 回复 有任何疑惑可以回复我~
#2

仍_是少年 提问者 回复 清欢iic

谢谢你
2019-10-05 回复 有任何疑惑可以回复我~

我把break给去掉也是正常输出的,break在之前的课程中有讲。这这节课的代码中,break的作用是如果在for循环中查询到所查询的值就跳出这个循环,循环不在进行下去。

0 回复 有任何疑惑可以回复我~
#1

仍_是少年 提问者

那这里没有break实际上也没影响吧?毕竟之后的循环就没有意义了,相当于程序运行时间长了对吧?
2019-08-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问,这里的 break 有什么作用,必须要吗?为什么没有了之后是 运行成功,输入错误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信