Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 缺少返回语句-int[]_Java_Arrays_Integer_Int - Fatal编程技术网

Java 缺少返回语句-int[]

Java 缺少返回语句-int[],java,arrays,integer,int,Java,Arrays,Integer,Int,我正在用Java编写一个方法(第一次这样做),在编译时遇到了一个小错误,尽管调试了数百次,但我仍然不知道哪里出了问题。最后,我求助于互联网 下面是我的代码中有问题的部分: public int[] sortArray(String [] args) { String temp = ""; for(int x = 0; x < args.length; x++){ for(int y = 1; y < args.lengt

我正在用Java编写一个方法(第一次这样做),在编译时遇到了一个小错误,尽管调试了数百次,但我仍然不知道哪里出了问题。最后,我求助于互联网

下面是我的代码中有问题的部分:

    public int[] sortArray(String [] args) {
        String temp = "";
        for(int x = 0; x < args.length; x++){
            for(int y = 1; y < args.length - 1; y++){
            if(Integer.parseInt(args[y-1])>Integer.parseInt(args[y])){
                temp = args[y-1];
                args[y-1] = args[y];
                args[y] = temp;
            }
        }
    }
}
public int[]sortArray(字符串[]args){
字符串temp=“”;
对于(int x=0;xInteger.parseInt(args[y])){
温度=args[y-1];
args[y-1]=args[y];
args[y]=温度;
}
}
}
}
每次编译时,它都会提供错误:Missing return语句
当我把“返回0;“在最后一个“}”之前的代码中,它给出了错误返回类型的错误,即0是int,我需要int[]返回。

您应该使用整数数组而不是整数返回,或者将方法签名的返回类型更改为
void

public void sortArray(String [] args) {
  // ...
}

将排序方法的签名更改为
void
。否则,它希望您在方法末尾返回排序的int数组

如果要返回已排序的字符串数组,请按以下方式更改方法:

public String[] sortArray(String [] args) {
    String temp = "";
    for(int x = 0; x < args.length; x++){
        for(int y = 1; y < args.length - 1; y++){
        if(Integer.parseInt(args[y-1])>Integer.parseInt(args[y])){
            temp = args[y-1];
            args[y-1] = args[y];
            args[y] = temp;
        }
     }
  }
  return args;
}
public String[]sortArray(String[]args){
字符串temp=“”;
对于(int x=0;xInteger.parseInt(args[y])){
温度=args[y-1];
args[y-1]=args[y];
args[y]=温度;
}
}
}
返回args;
}
该方法要返回什么?您的方法进行了适当的排序-为什么它需要返回任何内容?您可以将其设置为void方法:

public void sortArray(String[] args) {
    for (int x = 0; x < args.length; x++) {
        for (int y = 1; y < args.length - 1; y++) {
        if (Integer.parseInt(args[y-1]) > Integer.parseInt(args[y])) {
            // Note change of declaration location: in general, declare
            // variables with minimal scope
            String temp = args[y - 1];
            args[y - 1] = args[y];
            args[y] = temp;
        }
    }
}
public void sortArray(字符串[]args){
对于(int x=0;xInteger.parseInt(args[y])){
//注:申报地点变更:一般情况下,申报
//最小作用域变量
字符串温度=args[y-1];
args[y-1]=args[y];
args[y]=温度;
}
}
}

(请注意,您在这里进行了大量不必要的解析,而且您从未在内部循环中使用
x
的值……这是故意的吗?

函数中没有返回语句!因此编译错误……您似乎直接处理
args[]
,所以不要返回任何内容(void函数)

您可能只想返回
args
或将方法更改为
void

public String[]sortArray(String[]args){
  public String[] sortArray(String [] args) {
            String temp = "";
            for(int x = 0; x < args.length; x++){
                for(int y = 1; y < args.length - 1; y++){
                if(Integer.parseInt(args[y-1])>Integer.parseInt(args[y])){
                    temp = args[y-1];
                    args[y-1] = args[y];
                    args[y] = temp;
                }
            }
        }
            return args;
    }
字符串temp=“”; 对于(int x=0;xInteger.parseInt(args[y])){ 温度=args[y-1]; args[y-1]=args[y]; args[y]=温度; } } } 返回args; }

或者在java参数中使用void类型(char*args)在C/C++中。因此,您不需要在本节中返回任何内容,只需在调用者中使用args数组即可:)

如果您不想返回任何值,则将返回类型更改为void。如果您想返回任何内容,则使用适当的数据类型,在您的情况下,您应该返回int数组变量。

如何调试它如果它没有编译,会有多少次?我假设这是
[家庭作业]
,否则您将使用
数组。sort()