如何在我的主程序中使用子程序中的布尔返回值

时间:2014-03-01 02:20:34

标签: java boolean return

嘿,我制作了一个返回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;

任何帮助将不胜感激。 :)

1 个答案:

答案 0 :(得分:0)

“子程序”称为方法。因为它是静态的,所以它是一个类方法(在类上而不是在实例上调用的方法,如非静态方法)。

当您致电Uniqueyear(年份)时,您正在该类中调用Uniqueyear方法。

您已经定义了一个接收int的Uniqueyear方法。因此,无论何时调用它,编译器都会期望找到传递给它的整数值。

因此,当你这样做时

if (Uniqueyear()) {
}

编译器抱怨您没有将所需参数传递给Uniqueyear。

您可以将之前调用的返回值存储到Uniqueyear,然后在该值上使用if。

boolean myBoolean = Uniqueyear(year);
if (myBoolean) {
}

或者您也可以删除第一个Uniqueyear调用并将其直接放在if条件中。

if (Uniqueyear(year)) {
}