java - Java:使用while循环改变行的顺序
问题描述
我是编程新手,我想问我应该怎么做才能使 k 的最终值出现在 a 的值之前,当我尝试将它放在循环中时,它会重复该语句,而当我将它放在之前循环,其值为0。
System.out.printf("Input an integer: ");
int a = in.nextInt();
int k = 0;
System.out.print(a);
while(a > 1)
{
if(a % 2 == 0)
a = a / 2;
else
a = 3 * a + 1;
System.out.printf(", " + a);
k++;
}
System.out.println("\nk = " + k);
Output:
Input an integer: 10
10, 5, 16, 8, 4, 2, 1
k = 6
解决方案
你可以试试:
System.out.printf("Input an integer: ");
int a = in.nextInt();
int k = 0;
String str_a = "";
System.out.print(a);
while(a > 1)
{
if(a % 2 == 0)
a = a / 2;
else
a = 3 * a + 1;
str_a += ", " + String.valueOf(a);
k++;
}
System.out.println("k = " + k);
System.out.println("a = " + str_a);
推荐阅读
- ios - 任务:shared:linkDebugFrameworkIos FAILED
- type-conversion - 在java中将我的用户定义字符串转换为char数组
- react-native - 我在 ios 模拟器上运行我的 react-native 应用程序时遇到问题?
- css - R闪亮:switchInput的RenderUI不显示
- pandas - 如何将现有会计年度转换为其他 pandas 日期时间格式?
- reactjs - 如何自定义 react-google-charts?
- python - 从另一个目录Python读取Excel文件问题
- windows - 在 Windows 锁定屏幕上以编程方式移动鼠标光标
- swift - SwiftUI 在 ScrollView 上设置最大高度
- java - 如何使纹理跟随边界框?