Java 当我甚至没有向用户请求输入时,一个方法一直在请求输入

Java 当我甚至没有向用户请求输入时,一个方法一直在请求输入,java,for-loop,Java,For Loop,嘿,我正在解决一个叫sumdights的编码问题,在这里你可以用一个方法对一个数字的位数求和 例如 123应该返回1+2+3//6 这是密码 public int sumDigits(int num ) // num = 123 { int sumOfDigits = 0; for(int i = num ; i >= 0 ; i /= 10) { int digit = i % 10; // stores

嘿,我正在解决一个叫sumdights的编码问题,在这里你可以用一个方法对一个数字的位数求和 例如 123应该返回1+2+3//6 这是密码

public int sumDigits(int num ) // num = 123
    {
        int sumOfDigits = 0;

        for(int i = num ; i >= 0 ; i /= 10)
        {
            int digit = i % 10; // stores the rightmost digit then adds it to sumOfDigits
            sumOfDigits += digit;
        }
        return sumOfDigits;

    }
主要功能:-

System.out.println("Problem 4");
Assignment5 solutionA5 = new Assignment5();
System.out.println(solutionA5.sumDigits(123));
问题是,当我运行程序时 num参数是=123,正如我在注释中所写的 程序等待用户输入另一个num! 我不明白为什么,我甚至没有在.nextInt或类似的东西中包含任何扫描仪? 对不起,如果这是一个蹩脚的问题

程序等待用户输入另一个num

不,没有。它进入一个无限循环,因为
i
永远不会变成负数。您的循环应该是:

for (int i = num; i > 0; i /= 10)

在一个完全不接受用户输入的程序中,“输入另一个num”可能意味着什么是另一个谜。

它进入无限循环,即
i=0
的值。你应该改变

for(int i = num ; i >= 0 ; i /= 10)


我甚至没有在.nextInt中包含任何扫描仪

它也不会等待用户输入。它所做的只是:

System.out.println("Problem 4"); // prints 'Problem 4'
Assignment5 solutionA5 = new Assignment5();
System.out.println(solutionA5.sumDigits(123)); // goes into the infinite loop

是的,非常感谢!我没有想到这会导致一个无限循环。真的非常感谢!我没有想到这会导致一个无限循环actually@ShaDiliX我一直在问新手问题,不断地被投票否决。。。太令人沮丧了
System.out.println("Problem 4"); // prints 'Problem 4'
Assignment5 solutionA5 = new Assignment5();
System.out.println(solutionA5.sumDigits(123)); // goes into the infinite loop