......这的确是个很基础的问题1.函数不能有两个返回值  有且只能有一个
2.unreachbale code说明你的程序逻辑有问题..仔细检查
3.可以把strArray做为method1的返回值返回给调用者....也可以把strArray设置为static类型..这样method1中操作后再method2中可以使用

解决方案 »

  1.   

    返回两个数组是可以的,你要了解,在Java中,数组就是对象
      

  2.   

    老兄,没有问题呀。我这里有一个例子,不知道和你说的一样不?public class Test{ Test(){
    }
    public static String[] yestStr(){
    String[] str = {"1","2"};
    return str;
    }
    private static void getStr(){
    String[] str = yestStr();
    for(int i = 0; i< str.length; i++){
    System.out.println("======Str[" + i +"] = " + str[i]);
    }
    }
    public static void main(String arg[]){
    getStr();
    }
    }运行结果为:
    ======Str[0] = 1
    ======Str[1] = 2
    就是这个样子呀!
      

  3.   

    以下method1返回的就是一个String对象的数组,其实它返回的是这个String对象数组的引用
    String[] method1(){
    //////////
    }void method2(String[] sArr){
    /////
    }
    String[] strArr = method1();
    method2(strArr);   //这样就可以调用method2了
      

  4.   

    很高兴大家的热心:我想问一句是不是public  String[] yestStr(){}后就必须要有return字段呢?没有其他的返回方式了吗?
       To: WorkJava(清凉风) 你的代码的确没有问题。看了,可能是我的代码的其他地方有问题。
    但是我的确想返回两个字符串数组,难道要我先把他们转化为两个字符串,在合并为一个字符串数组,返回?真的不想这么做啊。
       To; qhdwsh(左撇子) 
    完全可以设立一个私有的字符串变量啊,晕
       好象有点理解,我试试
      

  5.   

    To: fog628(发粪涂墙)  
       何以得知你的method1返回的就是一个String对象的数组????并不需要return了?
    到底怎么样才算是返回了一个String数组呢?返回?怎么样才算返回啊?总以为只有用了return才算是返回!!!
      

  6.   

    public String[] convert(String[]tmptArray , String[]paramArray)throws Exception{
         int j=0,k=0;
         String[] sRet={""}; 
         for(int i=0;;i++){
             for(j=0;j<tmptArray.length&&k<paramArray.length;j++){
                 sRet[i]=sRet[i]+tmptArray[j]+paramArray[k];
                 j++;
                 k++;
                 }
             sRet[i]=sRet[i]+tmptArray[k];
             }
         return sRet;//unreachable
         }
    为什么会有错呢?
      

  7.   

    for(int i=0;;i++)不能这样写...用while吧
      

  8.   

    public  String[] yestStr(){}可以返回null,或字符串数组,不能是其它任何类型(包括不返回,也就是void)
    如果要返回两个字符串数组,可以这样:
    public String[][] yestStr(){
        String[] str1=...;
        String[] str2=null;
        String[][] rs=new String[][]{str1,str2};
        return rs;
    }
      

  9.   

    String[][] Method() {
        String[] s1 = {"1", "2", "3"};
        String[] s2 = {"4", "5", "6"};
    return new String[][] {s1, s2};
    }String[][] a = Method();
    String[] a1 = a[0];
    String[] a2 = a[1];
      

  10.   

    我记得c里好象都可以这样写啊。刚才是了以下该为
    for(int i=0;i<10;i++)是return就没问题了。呵呵,谢谢  bluemeteor(挂月||╭∩╮(︶_︶)╭∩╮) 
    不过还是很想解决返回多个数组的问题,还没解决呢
      

  11.   

    我想问大家是不是必须要return字段啊!如果函数的返回类型不为void的话。没有return就会报错???有没有其他方式返回呢?
      

  12.   

    for(int i=0;;i++){
    死循环,后面的RETURN语句当然是UNREACHABLE咯。
      

  13.   

    用while怎么解决啊?我改为:
    public String[] convert(String[]tmptArray , String[]paramArray)throws Exception{
         int i=0,j=0,k=0;
         String[] sRet={""}; 
         while(true){
             for(j=0;j<tmptArray.length&&k<paramArray.length;j++){
                 sRet[i]=sRet[i]+tmptArray[j]+paramArray[k];
                 j++;
                 k++;
                 }
             sRet[i]=sRet[i]+tmptArray[k];
             i++;
             }
         return sRet;
         }
    照样有错啊?
      

  14.   

    可以抛出例外,否则必须有return
      

  15.   

    简单的说你只能返回“一个”基本类型的值或者“一个”对象引用,具体你的应用可以把想返回的东西封装到一个对象里,再把这个对象的引用返回。
    如果你的方法申明是非void的,那么在你的方法体里必须用return返回相应类型的值。
      

  16.   

    xoj(橙汁), 是的哦,那这样的话,也是死循环,结束循环的条件是?恩,我再想想。
      

  17.   

    返回多个数组可以用二维数组来做...我有个这样的想法你看可以不可以.
    public String[] getm(String [] Arr1 , String []Arr2)
    {
       String []re = new String[5];
      Arr1[0]="kdjfkasdjf";
    return re;
    }
    在调用函数中..Arr1数组的值也变了.这样不就等于返回了两个吗
      

  18.   

    while(true){
             for(j=0;j<tmptArray.length&&k<paramArray.length;j++){
                 sRet[i]=sRet[i]+tmptArray[j]+paramArray[k];
                 j++;
                 k++;
                 }
             sRet[i]=sRet[i]+tmptArray[k];
             i++;
             }
    这是死循环,我不明白你要完成的是什么
      

  19.   

    REUTRN就代表返回值嘛,既然你想要在某个方法中返回一个值,而在别的方法中调用它的时候得到这个返回值,当然就必须RETURN了,但你说要返回两个数组,好办,将这两个字段社为公有静态变量,在本方法里对它进行赋值,外部的所有的方法都可以直接得到这个值,也不用返回什么值了!!!
      

  20.   

    To :qhdwsh(左撇子) 
          完全可以设立一个私有的字符串变量啊,晕
      现在突然觉得,如果把他作为私有变量的话好象有点不好,因为那样的话他不就是该类的一个属性了吗,可是从面向对象的角度考虑觉得这个类也不需要这个属性啊
        或者是我理解错了,到底什么情况下应该把某某做为一个类的成员呢?不是如果这个类有这个基本属性的时候,才去把他作为成员吗?
      

  21.   

    TO:liulang203(火的冰点) 我知道了,用二维数组的确可以,谢谢! To: fast_time(fast_time) 的确是死循环,不好意思,现在正在找结束循环的条件
      

  22.   

    的确是个基础的问题:
    1. 在JAVA中,声明的非void的方法必须得有一个返回值,也许是基本数据类型,如int,float等,或是对象,那怕你返回null。构造方法除外。返回的类型必须跟声明的类型一致,当然,你可以造型。
    2. JAVA的方法声明中,void表示不返回任何对象,这跟C是不一样的。
    3. 你的代码有问题,在while(true)循环中,没有break或return来跳出循环,compiler会认为这是条死循环抛出编译异常。
    4. 不必在声明中抛出Exception,你应该定义你需要的Exception类来抛出。希望楼主在JAVA的路上走好,JAVA是一门非常有趣的语言。
      

  23.   

    blandkiller(怀念旧社会),呵呵,你的break,很好,我竟然忘了。说实在的自己很少动手编过程,真正动起手来,发现,好难。一些笑问题都难以解决,谢谢鼓励。