mport java.util.Scanner; public class Moni { public static void main(String[] args){ System.out.println("请输入一个不超过1000的正整数:"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int count = 0; while(n != 1){ if(n % 2 == 0){ n = n / 2; count++; break; }else { n = (3 * n + 1) / 2; count++; } System.out.println(count); } while(n == 1) System.out.println("0步即可"); } }为什么后面的不执行
时间: 2024-02-14 17:11:44 浏览: 57
Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法
在你的代码中,当输入的数不是偶数时,进入 else 分支,执行 n = (3 * n + 1) / 2; 和 count++ 语句,但是你在这两条语句后面又加了一条 System.out.println(count); 语句,导致 count 的值在第一次执行后就被输出了,而后面的代码无法执行。你可以将 System.out.println(count); 移动到 while 循环的外面,这样就可以在 while 循环结束后输出 count 的值了。修改后的代码如下:
```
import java.util.Scanner;
public class Moni {
public static void main(String[] args){
System.out.println("请输入一个不超过1000的正整数:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
while(n != 1){
if(n % 2 == 0){
n = n / 2;
count++;
}else {
n = (3 * n + 1) / 2;
count++;
}
}
System.out.println(count);
}
}
```
阅读全文