簡體   English   中英

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

[英]How to use a boolean return value from my subprogram in my main

嘿,我做了一個子程序,它返回true或false。 現在在主目錄中,我無法在if語句中使用它。 這就是我塑造if語句的方式:

    Uniqueyear(year);

    if (Uniqueyear()) {
        System.out.println(year + "is unique.");
    }

    else {
        year++;
        Uniqueyear(year);
    }

}

但是,當我編譯程序時,它說“類DistinctDigits中的方法Uniqueyear無法應用於給定類型;必需:int發現:無參數原因:實際參數和形式參數列表的長度不同”

我是編程新手,似乎無法解決它。我還嘗試編寫“ if(Uniqueyear(year)){..,但它弄亂了我的輸出。這是我的子程序,以防萬一我的return語句中有問題其他:

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;

任何幫助將不勝感激。 :)

“子程序”稱為方法。 由於它是靜態的,所以它是一個類方法(一種在類上而不是在實例上調用的方法,例如非靜態方法)。

當您調用Uniqueyear(year)時,您正在該類中調用Uniqueyear方法。

您已經定義了一個接收整數的Uniqueyear方法。 因此,無論何時調用它,編譯器都會期望找到傳遞給它的整數值。

因此,當您這樣做

if (Uniqueyear()) {
}

編譯器抱怨您沒有將必需的參數傳遞給Uniqueyear。

您可以存儲上次對Uniqueyear的調用的返回值,然后在該值上使用if。

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

或者,您也可以刪除第一個Uniqueyear調用,並將其直接放在if條件內。

if (Uniqueyear(year)) {
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM