嘿,我正在解决一个名为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或类似的东西?
抱歉,如果这是一个蹩脚的问题
答案 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