当前位置: 首页 > 知识库问答 >
问题:

在Dr.java,但一直缺少返回语句错误

计寒
2023-03-14

我想在HW的整数中找到奇数。所以CountOddigtis(56781)应该返回(非打印)5 7 1。我的方法是将整数转换为字符串,并使用它返回。我遇到的问题是

>

  • 缺少返回语句错误,即使我在if语句中有一个返回语句。有人能解释这个错误意味着什么以及如何克服它吗?

    当我把返回x;放在方法的末尾时,它会打印56781的错误答案49。

    Java解决stringn.charat(x)%2!=0考虑到我可能(不确定)正在比较字符串或char与int?

    请保持简单,我不太喜欢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) );       
    }
    
  • 共有1个答案

    陆博易
    2023-03-14

    你大概不想在找到第一个奇数后立即返回。您还需要将结果转换回int(以匹配您的返回类型)。你可以用整数解析它。parseInt(字符串);您可以使用StringBuilder构建String。此外,您还可以使方法成为静态的。喜欢

    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
    

     类似资料:
    • 下面的Java不工作,因为它缺少一个return语句。我搞不懂怎么了。有什么想法吗? 即使我去掉字符串u,它也会给出相同的错误,如果我添加int usernameLimit,它也会给出相同的错误。

    • 我正在运行这段java代码,遇到一个错误“缺少返回语句”,请帮助。我在windows中使用cmd运行。

    • 问题内容: 为什么这给了我一个丢失的退货陈述错误?每个if / else都有返回值,最后一个括号出现错误 问题答案: 每个语句都在一个语句内。虽然从逻辑上讲这是不可能的,但是当所有评估都不为真时,编译器需要返回。 我建议: 我认为,此解决方案可解决编译器问题并稍微提高可读性。 或者,有以下解决方案: 引发异常将使你可以退出方法而无需返回任何信息……因为可以说,如果到达最后一个,显然会出错。

    • } 当我运行这段代码时,我得到以下错误: 我该怎么做来解决这个问题呢? 见下面的条件:给定一个从1到4(含)的数字,返回该数字的一个单词表示。例如,给定2,返回2。如果数字大于4,则返回短语“太大”。如果数字小于1,则返回短语too small。

    • 所以我得到了一个编译器错误,我丢失了一个返回语句,我已经研究了其他类似的问题,但我仍然对这个问题感到困惑。 如果之前有人问过这个问题,我会提前道歉,但我已经看过了其他各种问题,我似乎无法弄清楚这一点。

    • 我有一个二维布尔数组“poorSignal”,需要编写一个返回网格的方法,如果数组上的一个点为真,则显示X,如果为假,则显示O。这是我的代码: 当我编译时,它在方法的最后一行给出了“missing return statement”。我也不确定“return”\n在打印阵列时是否可以添加新行。 这是一个赋值问题,所以我不能直接打印它,也不能只打印布尔值——它必须是一个生成网格的方法。