我的代码有问题,但是我不确定这是什么吗?

时间:2018-09-03 15:07:00

标签: java

我正在尝试打印用户输入的数字的总和, 我的代码有什么问题?在我看来,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;
    }

}

2 个答案:

答案 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>