Java 在for循环之后如何返回true或false
我已经编写了一个代码,该代码对数组值进行排序。我的代码必须返回布尔值,但它并没有像我想象的或我想象的那样好 控制台说;“此方法必须返回布尔类型的结果” 这是我的密码Java 在for循环之后如何返回true或false,java,Java,我已经编写了一个代码,该代码对数组值进行排序。我的代码必须返回布尔值,但它并没有像我想象的或我想象的那样好 控制台说;“此方法必须返回布尔类型的结果” 这是我的密码 double array[] ={3.2,9.4,7.1,1,2,4.1,8.88}; // i j1 isItSort(array); wrtOut(array); } public static boolean isItSort(double
double array[] ={3.2,9.4,7.1,1,2,4.1,8.88};
// i j1
isItSort(array);
wrtOut(array);
}
public static boolean isItSort(double[] numbers)
{
int j=0;
int i;
for(i = 0; i<numbers.length; i++)
{
for(j =i+1; j<numbers.length; j++)
{
for(int j1 = j; j1<numbers.length; j1++)
{
boolean check = numbers[i]<numbers[j1];
if(check)
{
double temp = numbers[j1];
numbers[j1]= numbers[i];
numbers[i] = temp;
return true;
}
}
}
}
}
public static void wrtOut(double[] numbers){
for(int i=0; i<=numbers.length-1;i++ )
{
System.out.println(numbers[i]);
}
}
double array[]={3.2,9.4,7.1,1,2,4.1,8.88};
//我是j1
isItSort(阵列);
wrtOut(阵列);
}
公共静态布尔值isItSort(双[]个数字)
{
int j=0;
int i;
对于(i=0;i这是因为您的方法中没有针对所有可能情况的返回值,例如,如果check
从不true
您当前代码没有返回任何值,您应该在方法末尾返回默认值,如下所示:
public static boolean isItSort(double[] numbers) {
...
return false;
}
这是因为您的方法中没有针对所有可能情况的返回值,例如,如果check
从不true
您当前代码没有返回任何值,您应该在方法末尾返回默认值,如下所示:
public static boolean isItSort(double[] numbers) {
...
return false;
}
isItSort()-仅for循环具有return语句。编译器不确定该方法是否会成功返回,因此给出错误。如果
布尔检查=数字[i]
不提供true。如果for循环结束而未在块下执行,则该方法将无法返回任何值
如果(检查)
{
double temp = numbers[j1];
numbers[j1]= numbers[i];
numbers[i] = temp;
return true;
}
因此,理想情况下,如果没有条件满足,则应返回false。因此,在方法末尾写入一个返回false。程序将运行。isItSort()-只有for循环才有return语句。编译器不确定该方法是否会成功返回,因此给出错误。如果
布尔检查=数字[i]
不提供true。如果for循环结束而未在块下执行,则该方法将无法返回任何值
如果(检查)
{
double temp = numbers[j1];
numbers[j1]= numbers[i];
numbers[i] = temp;
return true;
}
因此,理想情况下,如果没有条件满足,则应返回false。因此,在方法末尾编写一个返回false。程序将运行。如果if语句为true,则方法“isItSort”有一个布尔返回,并且您声明返回true,但并不总是满足条件,因此编译器会告诉您添加bool方法末尾的ean返回,例如:
public static boolean isItSort(double[] numbers)
{
int j=0;
int i;
for(i = 0; i<numbers.length; i++)
{
for(j =i+1; j<numbers.length; j++)
{
for(int j1 = j; j1<numbers.length; j1++)
{
boolean check = numbers[i]<numbers[j1];
if(check)
{
double temp = numbers[j1];
numbers[j1]= numbers[i];
numbers[i] = temp;
return true;
}
}
}
}
return true; <!-- you need to put appropriate return here -->
}
public静态布尔值isItSort(双[]个数字)
{
int j=0;
int i;
对于(i=0;i
}
方法“isItSort”具有布尔返回,如果if语句为true,则声明返回true,但并不总是满足条件,因此编译器会告诉您在方法末尾添加布尔返回,例如:
public static boolean isItSort(double[] numbers)
{
int j=0;
int i;
for(i = 0; i<numbers.length; i++)
{
for(j =i+1; j<numbers.length; j++)
{
for(int j1 = j; j1<numbers.length; j1++)
{
boolean check = numbers[i]<numbers[j1];
if(check)
{
double temp = numbers[j1];
numbers[j1]= numbers[i];
numbers[i] = temp;
return true;
}
}
}
}
return true; <!-- you need to put appropriate return here -->
}
public静态布尔值isItSort(双[]个数字)
{
int j=0;
int i;
对于(i=0;i
}
猜猜如果你将一个空的double[]
传递给这个方法会发生什么。如果我添加一个空的return,它将毫无问题地工作(我知道).所以我不明白为什么我需要使用return语句,如果它能完美地与void一起工作。我不明白为什么人们会投反对票。你不是一个初学者吗?猜猜如果你将一个空的double[]
传递给该方法会发生什么。如果我添加一个空的return,它将毫无问题地工作(我知道)。所以我不明白为什么我需要使用返回语句,如果它能完美地与void一起工作。我不明白为什么人们会投反对票。你曾经不是初学者吗?我不明白返回语句有什么作用,当我写的是假的还是真的时?对我来说,它似乎不有效。在void这种情况下使用它更好吗?如何合作使用void或boolean更有效?这里返回false是有意义的,因为如果我们达到它,这意味着检查一直都是false,结果是false。我不明白当我写false或true时,它返回那里做什么?对我来说,它似乎不有效。在void这种情况下使用它更好吗?如何才能更有效nt适用于使用void或boolean的用户?这里返回false是有意义的,因为如果我们达到它,这意味着检查一直是false,因此结果为false,void可能是比boolean更好的选择。(感谢完美的解释)@Júlio diascan void可能是比boolean更好的选择。(感谢完美的解释)@Júlio Dias