我正在尝试将输入输入到变量 n 中。然而,当尝试接受输入时,它会无限卡住。
import java.util.*;
public class Hello {
public static void main(String[] args) {
//Your Code Here
int i,r=0,max=0;
Scanner s=new Scanner(System.in);
//int i,r=0,max=0;
int n=s.nextInt();
for(i=1;i<=n;i++)
{
while(i>0)
{
r+=i%10;
i/=10;
}
if(max<=r)
max=r;
r=0;
}
System.out.print(max);
}
}
我希望程序接受一个输入,然后在程序中进一步处理并计算结果。但是,它在尝试接收输入时卡住了。
最佳答案
问题是当i
变为零时,内部while
循环将终止。但是,外部 for
循环会愉快地继续迭代。所以无限循环实际上是for循环,永远不会结束。在不确切知道您的代码应该做什么的情况下,我可以建议您直接使用另一个变量而不是 i
:
for (i=1; i <= n; i++) {
int j = i;
while (j > 0) { // use variable j to do the math; don't change loop counter i
r += j % 10;
j /= 10;
}
if (max <= r) { // possibly record a new max value
max = r;
}
r = 0; // always reset r
}
关于java - 尽管程序一次扫描一个元素,但程序仍在无限地获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52195670/