我得到了以下代码:
public static ArrayList<Integer> MakeSequence(int N){
ArrayList<Integer> x = new ArrayList<Integer>();
if (N<1) {
return x; // need a null display value?
}
else {
for (int j=N;j>=1;j--) {
for (int i=1;i<=j;i++) {
x.add(Integer.valueOf(j));
}
}
return x;
}
}
我正试图从main方法中调用它,就像这样:
System.out.println(MakeSequence (int N));
但是我得到一个错误...
有什么建议吗?非常感谢,谢谢!
答案 0 :(得分:4)
System.out.println(MakeSequence (int N));
应该是
int N = 5; // or whatever value you wish
System.out.println(MakeSequence (N));
只需传递正确类型的变量即可。您不必再说它是int
;
答案 1 :(得分:4)
您按照MakeSequence (int N)
定义方法,这意味着该方法需要一个int
类型的参数,并且在该方法内部使用时将被称为N
。
因此,在调用该方法时,您需要传递int
像这样:
MakeSequence(5);
// or
int value = 5;
MakeSequence(value);
然后将所有内容放入print
或将结果用于变量
System.out.println(MakeSequence(5));
//or
List<Integer> res = MakeSequence(5);
System.out.println(res);
要调用该方法,所有这些代码都应该在另一个方法中,例如main
将x.add(Integer.valueOf(j));
更改为x.add(j);
,因为j
已经是int
要遵循Java命名约定:包,属性,变量,参数,方法必须从 lowerCase 开始,而类,接口应从 UpperCase < / p>
答案 2 :(得分:2)
第一个问题是我认为N应该是某个int
值,而不是在方法调用中定义变量。像
int N = 20;
ClassName.MakeSequence(N);
您将面临的另一个问题。由于System.out.println()
仅显示字符串值,并且您正在将ArrayList
对象传递给它,因此像这样System.out.println(ClassName.MakeSequence(N).toString())