[英]Have to find odd numbers in Dr.Java but keep getting missing return statement error
我想在HW中找到一個整數中的奇數。 所以countOddigtis(56781)應該返回(NOT PRINT)5 7 1.我的方法是將整數轉換為字符串,然后使用該字符串返回。 我遇到的問題是
即使if語句中有return語句,也缺少return語句錯誤。 有人可以解釋這個錯誤的含義以及如何克服它嗎?
當我輸入return x時,它會為56781打印出錯誤的答案49; 在方法的末尾。
考慮到我可能(不確定)將字符串或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.