[英]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.