该程序应该在1处停止循环,但由于使用了多个if,它会继续循环。我能够使用if-else完成这个练习,但我很难追踪和理解多个if和if-else之间的差异。
我是新手,所以提前感谢大家的帮助。
我是新手,所以提前感谢大家的帮助。
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter a starting value: ");
int input = keyboard.nextInt();
System.out.print(input + ",");
System.out.print(" ");
while (input != 1) {
if (input % 2 == 0) {
input = input / 2;
System.out.print(input + ",");
System.out.print(" ");
}
if (input % 2 == 1) { // replace with else
input = 3 * input + 1;
System.out.print(input + ",");
System.out.print(" ");
}
}
keyboard.close();
}
预期结果:程序应该在1处停止(while循环检查)
实际结果:它继续无限循环:4 2 1 4 2 1 ....
System.in
的Scanner
,如果关闭它,您将无法在程序中稍后再次打开System.in
。最好抑制System.in
的警告并关闭不是System.in
的流。 - Nexevis