繁体   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