A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 13155155528 中级黑马   /  2014-8-7 10:57  /  1483 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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];
        }


为什么输入正数打印一次,输入负数打印两次你输入的下标不存在?

6 个回复

倒序浏览
不明白你问的什么。你要查找的数字或者char类型字符必须要在你定义的数组中。
回复 使用道具 举报
因为你的第一条语句相当于this.getIndex(-1);相当于调用了一次本函数,所以他会打印一次。第二条又是调用了一次函数,所以又打印一次...,正数的话也是调用两次函数,只不过进不去if语句。这是我的理解...
回复 使用道具 举报
没明白
回复 使用道具 举报
因为你的打印语句就是打印ch的值,该你第一次调用getIndex()方法的时候,没有接返回值,并且也没有打印该返回值啊,所以只打印一个值的结果。
回复 使用道具 举报
  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. }
复制代码

我是红领巾
回复 使用道具 举报
你调用了两次方法,肯定就打印两次啊,第一次没有接收返回值,第二次接收了返回值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马