Java 为什么我不能在这里返回多个值?
基本上,代码显示了Alicepoints和BobPoints之间的区别。但是当我返回它们时,它只是不运行 但是当我运行代码时,会显示这个错误Java 为什么我不能在这里返回多个值?,java,Java,基本上,代码显示了Alicepoints和BobPoints之间的区别。但是当我返回它们时,它只是不运行 但是当我运行代码时,会显示这个错误 "Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:907) at java.util.Scanner.next(Scanner.java:1530) at java.util.Scanner.next
"Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Solution.solve(Solution.java:12)
at Solution.main(Solution.java:33)"
这是意外的。代码如下所示
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
static int[] solve(){
// Complete this function
Scanner in = new Scanner(System.in);
int a0 = in.nextInt();
int a1 = in.nextInt();
int a2 = in.nextInt();
int b0 = in.nextInt();
int b1 = in.nextInt();
int b2 = in.nextInt();
int pointsAlice,pointsBob;
pointsAlice = ((a0>b0)?1:0)+ ((a1>b1)?1:0)+ ((a2>b2)?1:0) ;
pointsBob = ((a0<b0)?1:0)+ ((a1<b1)?1:0)+ ((a2<b2)?1:0) ;
int ar[] = new int[2];
ar[0]=pointsAlice;
ar[1]=pointsBob;
return ar;
}
public static void main(String[] args) {
Solution m=new Solution();
int rr[] = new int[2];
rr = m.solve();
System.out.println(rr[0] +" " + rr[1]);
}
}
import java.io.*;
导入java.util.*;
导入java.text.*;
导入java.math.*;
导入java.util.regex.*;
导入java.math.*;
导入java.util.regex.*;
公共类解决方案{
静态int[]solve(){
//完成此功能
扫描仪输入=新扫描仪(系统输入);
int a0=in.nextInt();
int a1=in.nextInt();
int a2=in.nextInt();
int b0=in.nextInt();
int b1=in.nextInt();
int b2=in.nextInt();
int pointsAlice,pointsBob;
pointsAlice=((a0>b0)→1:0)+(a1>b1)→1:0)+(a2>b2)→1:0);
pointsBob=((a0代码运行良好,但是有几点
- 您实际上不需要创建
Solution
的对象来调用solve()
方法。您可以按如下所示执行,因为它是静态的
- 您不需要创建新的
int[]
来存储solve();
int rr[]=Solution.solve();//注意我没有创建新数组。
问题与返回值无关。问题在于您试图读取的输入不是程序可以处理的形式
如果您使用以6个整数开头并在它们之间留有空格的输入来运行所编写的代码,那么它将正常工作。如果您给它其他值,其中一个nextInt
调用将抛出inputmaschException
(如果令牌不是整数)或noTouchElementException
(如果您到达流的末尾)。然后它将崩溃,因为您没有处理这些异常。错误消息很好地解释了问题…它对我来说很好!对于我来说,与@YCF_l一样,您使用的是什么作为输入?谢谢,无论如何,我使用Tahseem在上述注释中提供的提示解决了它,该提示与您的类似