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

若是数组中不存在所寻找元素,为什么会出现这个结果

请看下面的图,出来的结果怎么会是71呢

https://img2.mukewang.com/5b874591000155ef04820350.jpg

https://img.mukewang.com/5b87459a0001f73903440091.jpg

还有就是例题解答里为什么在for循环下的if语句中非要加上break?


提问者:天阶夜色 2018-08-30 09:17

个回答

  • 慕勒4217424
    2018-08-30 16:42:12
    已采纳

    我这没有调试软件,如果没出错的话,你运行该程序每次的结果都应该不一样,因为你定义的int index是没有赋初值的。这时候index的值是系统随机给的。只有static静态变量不赋初值的时候变量值是默认0。加break的原因是,第一次出现目标元素时停止循环。与楼上说的类似,如果出现重复元素,得到的结果不一样,这个根据需求来判断。还有就是出现目标元素后就停止循环,对这个程序而言是更好的,因为我们不必要浪费时间循环后面的元素。

  • MEMORY_WITH_U
    2018-08-30 18:48:10

    补充楼上  int 类型定义时候前面没有修饰的话  默认会是auto auto的默认值可以是任意的值或表达式

  • 要死综合征晚期
    2018-08-30 13:50:37

    你怎么跑出71的等大神说说吧。按道理说,你的这个程序中index没有通过你的for循环得到赋值,所以index应该是定义时候的初值,应该是0。

    例题解答中为什么if语句里非要加上break。加上break是为了及时跳出当前循环,查询到对应元素第一次出现的位置。就例题来讲arr[5]={3,12,9,8,6},有没有break没有影响。但是如果这个数组中存在重复元素arr[5]={1.2.3.4.3},如果value=3,不加break语句,那么得出结果会是index=4,即元素3最后一次出现的位置。