......这的确是个很基础的问题1.函数不能有两个返回值 有且只能有一个
2.unreachbale code说明你的程序逻辑有问题..仔细检查
3.可以把strArray做为method1的返回值返回给调用者....也可以把strArray设置为static类型..这样method1中操作后再method2中可以使用
2.unreachbale code说明你的程序逻辑有问题..仔细检查
3.可以把strArray做为method1的返回值返回给调用者....也可以把strArray设置为static类型..这样method1中操作后再method2中可以使用
}
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
就是这个样子呀!
String[] method1(){
//////////
}void method2(String[] sArr){
/////
}
String[] strArr = method1();
method2(strArr); //这样就可以调用method2了
To: WorkJava(清凉风) 你的代码的确没有问题。看了,可能是我的代码的其他地方有问题。
但是我的确想返回两个字符串数组,难道要我先把他们转化为两个字符串,在合并为一个字符串数组,返回?真的不想这么做啊。
To; qhdwsh(左撇子)
完全可以设立一个私有的字符串变量啊,晕
好象有点理解,我试试
何以得知你的method1返回的就是一个String对象的数组????并不需要return了?
到底怎么样才算是返回了一个String数组呢?返回?怎么样才算返回啊?总以为只有用了return才算是返回!!!
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
}
为什么会有错呢?
如果要返回两个字符串数组,可以这样:
public String[][] yestStr(){
String[] str1=...;
String[] str2=null;
String[][] rs=new String[][]{str1,str2};
return rs;
}
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];
for(int i=0;i<10;i++)是return就没问题了。呵呵,谢谢 bluemeteor(挂月||╭∩╮(︶_︶)╭∩╮)
不过还是很想解决返回多个数组的问题,还没解决呢
死循环,后面的RETURN语句当然是UNREACHABLE咯。
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;
}
照样有错啊?
如果你的方法申明是非void的,那么在你的方法体里必须用return返回相应类型的值。
public String[] getm(String [] Arr1 , String []Arr2)
{
String []re = new String[5];
Arr1[0]="kdjfkasdjf";
return re;
}
在调用函数中..Arr1数组的值也变了.这样不就等于返回了两个吗
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++;
}
这是死循环,我不明白你要完成的是什么
完全可以设立一个私有的字符串变量啊,晕
现在突然觉得,如果把他作为私有变量的话好象有点不好,因为那样的话他不就是该类的一个属性了吗,可是从面向对象的角度考虑觉得这个类也不需要这个属性啊
或者是我理解错了,到底什么情况下应该把某某做为一个类的成员呢?不是如果这个类有这个基本属性的时候,才去把他作为成员吗?
1. 在JAVA中,声明的非void的方法必须得有一个返回值,也许是基本数据类型,如int,float等,或是对象,那怕你返回null。构造方法除外。返回的类型必须跟声明的类型一致,当然,你可以造型。
2. JAVA的方法声明中,void表示不返回任何对象,这跟C是不一样的。
3. 你的代码有问题,在while(true)循环中,没有break或return来跳出循环,compiler会认为这是条死循环抛出编译异常。
4. 不必在声明中抛出Exception,你应该定义你需要的Exception类来抛出。希望楼主在JAVA的路上走好,JAVA是一门非常有趣的语言。