当我甚至没有要求用户输入

时间:2017-10-03 10:15:18

标签: java for-loop

嘿,我正在解决一个名为sumDigits的codingbat上的问题,其中你创建了一个求和数字的数字的方法 例如 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 程序等待用户输入另一个数字! 我不明白为什么,我甚至没有包括任何扫描仪in.nextInt或类似的东西? 抱歉,如果这是一个蹩脚的问题

2 个答案:

答案 0 :(得分:2)

  

程序等待用户输入另一个数字

不,不。它进入无限循环,因为i永远不会变为负数。你的循环应该是:

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

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

答案 1 :(得分:0)

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

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

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

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

它也没有等待用户输入。所有这一切都是这样的:

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