我正在尝试打印用户输入的数字的总和, 我的代码有什么问题?在我看来,S.O.P。中强调了这笔款项。 但是为什么呢?以及我该如何解决?
package assignment7;
import java.util.Scanner;
public class Assignment7_4_5 {
public static void main(String[] args) {
Scanner input= new Scanner (System.in);
System.out.print("Enter a number: ");
int number=input.nextInt();
System.out.println("sum: "+sumDigits (sum));
}
public static int sumDigits(int sum) {
int number = 0;
while (number > 0) {
sum = sum + number % 10;
number = number / 10;
}
return sum;
}
}
答案 0 :(得分:2)
您需要将sumDigits(sum)
更改为sumDigits(number)
,因为number是您要传递给方法的变量,在使用sumDigits方法之前,甚至没有声明变量sum。同样在该函数中,while循环将永远不会执行,因为number设置为零并且条件是(number > 0)
,它永远不会是true
。
答案 1 :(得分:0)
您对数字求和的方法错误。您需要输入数字,因为这是您从用户那里得到的。总和需要初始化为0,而不是数字。然后,您将增加总和并除以数字,完成后返回总和。然后您也不会跳过while循环!
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.7</source>
<target>1.8</target>
</configuration>
</plugin>