请看下面的图,出来的结果怎么会是71呢
还有就是例题解答里为什么在for循环下的if语句中非要加上break?
我这没有调试软件,如果没出错的话,你运行该程序每次的结果都应该不一样,因为你定义的int index是没有赋初值的。这时候index的值是系统随机给的。只有static静态变量不赋初值的时候变量值是默认0。加break的原因是,第一次出现目标元素时停止循环。与楼上说的类似,如果出现重复元素,得到的结果不一样,这个根据需求来判断。还有就是出现目标元素后就停止循环,对这个程序而言是更好的,因为我们不必要浪费时间循环后面的元素。
补充楼上 int 类型定义时候前面没有修饰的话 默认会是auto auto的默认值可以是任意的值或表达式
你怎么跑出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最后一次出现的位置。