黑马程序员技术交流社区

标题: 还是关于return的问题 请大神指教、如何运行。 [打印本页]

作者: yekong262    时间: 2014-1-22 10:56
标题: 还是关于return的问题 请大神指教、如何运行。
本帖最后由 yekong262 于 2014-1-23 11:29 编辑

int [] arr={1,5,6,7};  key=7  查找7是否在数组arr中
  1. public static int getIndex(int[] arr,int key)
  2.         {
  3.                 for (int x=0;x<arr.length ;x++ )
  4.                 {
  5.                         if (key==arr[x])/ 当x=0时,key、=7不等于arr[0]=1 那也就是这句话不运行  
  6.                              return x;
  7.                            return -1; //那是不是就该运行这句话 这样的话 该返回   -1的
  8.                                             为什么返回的是3呢
  9.                         
  10.                 }
  11.                 return 55;//当数组为空时,这里没有返回值的话。就无法运行、
  12.         }
复制代码

作者: yekong262    时间: 2014-1-22 10:58
这个运行顺序是怎么个顺序啊。。
作者: qisikudingcha    时间: 2014-1-22 11:05
本帖最后由 qisikudingcha 于 2014-1-22 11:34 编辑

你确定你返回的是3,实在不行你用debug调试一下就能看出来程序是怎么跑的

作者: 心安勿忘    时间: 2014-1-22 11:05
你定义的x是arr[x]索引值,下标从0开始,key=7,在arr第四个数,索引值正好是3
作者: yekong262    时间: 2014-1-22 11:15
心安勿忘 发表于 2014-1-22 11:05
你定义的x是arr[x]索引值,下标从0开始,key=7,在arr第四个数,索引值正好是3 ...

那是不是说 if这个条件语句 把 arr数组中0-3的角标 都确认一遍之后 才开始运行下面的代码??
作者: 心安勿忘    时间: 2014-1-22 11:31
如果你返回的是arr[x]的话才可以是7,因为x的值为3,你弄错了。你可以return arr[x]
作者: MyFuture    时间: 2014-1-22 11:54
你在if后面返回的是arr的角标值,7正好在arr[3],return应该自循环外面的,没有查找到返回-1
作者: 孤独的天奇    时间: 2014-1-22 12:11
应该返回-1啊 楼主你再仔细确认一下
作者: yekong262    时间: 2014-1-22 12:32
孤独的天奇 发表于 2014-1-22 12:11
应该返回-1啊 楼主你再仔细确认一下

假如要找的是7的话 返回值是3 这个 我已经测试过了。。你可以试试。。。
作者: 向阳泪无痕    时间: 2014-1-22 17:01
我试了下你的这个代码    返回的是 -1   
作者: yekong262    时间: 2014-1-23 11:29
向阳泪无痕 发表于 2014-1-22 17:01
我试了下你的这个代码    返回的是 -1

哦 。。我知道了,。,我输错调用的功能了
作者: 透过生活    时间: 2014-1-23 13:07
retrun -1 这是通常这样写负数。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2