我无法弄清楚为什么我的循环不会继续。每次运行程序时,它只执行循环的一次迭代。
我正在实现基于数学家Lewis Caroll的算法,您可以从输入数字中删除最后一位数字,并从剩余数字形成的数字中减去该数字。例如,如果我输入数字48070,则输出为
48070
4807
它停在那里而不是继续。
// The "Divisible_Dianik" class.
import java.awt.*;
public class Divisible_Dianik
{
public static void main (String[] args)
{
int userinput = 1;
int lastint;
int firstpart;
int output = 1;
while (output != 0)
{
userinput = In.getInt ();
lastint = userinput % 10;
firstpart = userinput / 10;
output = firstpart - lastint;
System.out.println (output);
userinput = output;
}
} // main method
} // Divisible_Dianik class
答案 0 :(得分:5)
我将假设In.getInt()
是用于从用户获得基于终端的反馈的某种抽象。它很容易被这个取代:
Scanner scan = new Scanner(System.in);
// in the loop
userinput = scan.nextInt();
scan.nextLine();
如果是这种情况,您不循环的原因是每次都阻止输入。你想要做的是移动循环之外的输入的请求。
int lastint;
int firstpart;
int output = 1;
Scanner scan = new Scanner(System.in);
int userinput = scan.nextInt();
while (output != 0) {
lastint = userinput % 10;
firstpart = userinput / 10;
output = firstpart - lastint;
System.out.println(output);
userinput = output;
}