嘿,我制作了一个返回true或false的子程序。现在在我的主要内容中,我无法在if语句中使用它。这就是我塑造if语句的方式:
Uniqueyear(year);
if (Uniqueyear()) {
System.out.println(year + "is unique.");
}
else {
year++;
Uniqueyear(year);
}
}
然而,当我编译我的程序时,它说“DistinctDigits类中的方法Uniqueyear不能应用于给定的类型; 必需:int 发现:没有争论 原因:实际和正式的参数列表长度不同“
我是编程的新手,似乎无法修复它。我也尝试写过“if(Uniqueyear(year)){..但它会弄乱我的输出。这是我的子程序,以防我回来时出现问题声明或其他任何内容:
public static boolean Uniqueyear(int a) {
String year= Integer.toString(a);
for (int i=0; i<year.length(); i++) {
for(int j = i + 1; j < year.length(); j ++){
if (year.charAt(i) == year.charAt(j)) {
return true;
}
}
}
return false;
任何帮助将不胜感激。 :)
答案 0 :(得分:0)
“子程序”称为方法。因为它是静态的,所以它是一个类方法(在类上而不是在实例上调用的方法,如非静态方法)。
当您致电Uniqueyear(年份)时,您正在该类中调用Uniqueyear方法。
您已经定义了一个接收int的Uniqueyear方法。因此,无论何时调用它,编译器都会期望找到传递给它的整数值。
因此,当你这样做时
if (Uniqueyear()) {
}
编译器抱怨您没有将所需参数传递给Uniqueyear。
您可以将之前调用的返回值存储到Uniqueyear,然后在该值上使用if。
boolean myBoolean = Uniqueyear(year);
if (myBoolean) {
}
或者您也可以删除第一个Uniqueyear调用并将其直接放在if条件中。
if (Uniqueyear(year)) {
}