黑马程序员技术交流社区

标题: 数组的问题 [打印本页]

作者: 13155155528    时间: 2014-8-7 10:57
标题: 数组的问题
class FindElement
{
        public static void main(String[] args)
        {
                getIndex(-1);
                char ch=getIndex(-1);
                System.out.println(ch);
        }
        public static char getIndex(int index)
        {
                if(index<0)
                {       
                        System.out.print("你输入的下标不存在");
                        return ' ';
                }
                char [] arr={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E'};
                return arr[index];
        }


为什么输入正数打印一次,输入负数打印两次你输入的下标不存在?
作者: 赵良泰    时间: 2014-8-7 11:08
不明白你问的什么。你要查找的数字或者char类型字符必须要在你定义的数组中。
作者: 冒牌高手    时间: 2014-8-7 11:13
因为你的第一条语句相当于this.getIndex(-1);相当于调用了一次本函数,所以他会打印一次。第二条又是调用了一次函数,所以又打印一次...,正数的话也是调用两次函数,只不过进不去if语句。这是我的理解...
作者: 沟门大杏    时间: 2014-8-7 12:06
没明白

作者: 喜爱    时间: 2014-8-7 13:37
因为你的打印语句就是打印ch的值,该你第一次调用getIndex()方法的时候,没有接返回值,并且也没有打印该返回值啊,所以只打印一个值的结果。
作者: 吴杰栋    时间: 2014-8-7 17:06
  1. package demo_1;
  2. //请在一个类中编写一个方法,查找一个字符数组中是否存在某个字符,
  3. //若存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),
  4. //否则,返回-1。思路和步骤以及代码
  5. public class Test3 {
  6.         public static void main(String[] args) {
  7.                 char[] ch = {'a','s','s','f','g','q','w','r'};
  8.                 int index = findChar(ch,'c');
  9.                 System.out.println(index);
  10.         }

  11.         public static int findChar(char[] ch,char c) {
  12.                 int index = 0;
  13.                 for(int a=0;a<ch.length;a++){
  14.                         if(ch[a]!=c){
  15.                                 index = -1;
  16.                                 continue;//开始找不到c的时候先记录-1,然后再去循环,也许后面有c
  17.                         }
  18.                         if(ch[a]==c){
  19.                                 index = a;
  20.                                 break;//为了出现第二个字符的时候,可以用index记录第一次出现的值
  21.                         }
  22.                 }
  23.                 return index;
  24.         }

  25. }
复制代码

我是红领巾
作者: 舍我其谁    时间: 2014-8-7 17:46
你调用了两次方法,肯定就打印两次啊,第一次没有接收返回值,第二次接收了返回值




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