Java 缺少返回语句-int[]
我正在用Java编写一个方法(第一次这样做),在编译时遇到了一个小错误,尽管调试了数百次,但我仍然不知道哪里出了问题。最后,我求助于互联网 下面是我的代码中有问题的部分: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
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()