簡體   English   中英

必須在Dr.Java中找到奇數,但不斷丟失返回語句錯誤

[英]Have to find odd numbers in Dr.Java but keep getting missing return statement error

我想在HW中找到一個整數中的奇數。 所以countOddigtis(56781)應該返回(NOT PRINT)5 7 1.我的方法是將整數轉換為字符串,然后使用該字符串返回。 我遇到的問題是

  1. 即使if語句中有return語句,也缺少return語句錯誤。 有人可以解釋這個錯誤的含義以及如何克服它嗎?

  2. 當我輸入return x時,它會為56781打印出錯誤的答案49; 在方法的末尾。

  3. 考慮到我可能(不確定)將字符串或char與int進行比較,Java是否可以解決stringn.charAt(x)%2!= 0?

PS保持簡單,我不需要太多Java,我才剛剛開始。

int countOddigits( int n )
{
    int x = 0;
    String stringn = Integer.toString(n);

    while ( x <= stringn.length() - 1 )
    {
        if ( stringn.charAt(x) % 2 != 0 )
        {
            return stringn.charAt(x); 
        }
        x++;
    }
}

public void run()
{
    System.out.printf("Odd number is %d\n: ", countOddigits(567981) );       
}

您大概不想在找到第一個奇數位后立即返回。 您還需要將結果轉換回int (以匹配您的返回類型)。 您可以使用Integer.parseInt(String) parse它; 您可以使用StringBuilder構建該String 另外,您可以將方法設置為static 喜歡,

static int countOddDigits(int i) { // <-- camel case, that is camelCase
    StringBuilder sb = new StringBuilder();
    // for each char ch in the String form of i converted to a character array
    for (char ch : String.valueOf(i).toCharArray()) {
        if (Character.digit(ch, 10) % 2 != 0) {
            sb.append(ch);
        }
    }
    return Integer.parseInt(sb.toString());
}

然后,要測試它,您可以像這樣稱呼它

public static void main(String[] args) {
    int oddDigits = countOddDigits(56781);
    System.out.println(oddDigits);
}

哪個輸出

571

暫無
暫無

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

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