我试图将数字与整数分开,然后将它们放入数组中。
除第一个元素外,所有元素都打印为0.有人可以解释为什么会发生这种情况吗?
public class Doom{
public static void main(String[] args){
int number = 1234;
int[] list = new int[5];
while (number > 0) {
int x = 0;
int fork = (number%10);
System.out.println(fork);
list[x] = fork;
x++;
number = number / 10;
}
for (int x : list){
System.out.println(x);
}
}
}
答案 0 :(得分:2)
问题是您在循环中声明了x
,因此每次都会重置为0
。您希望将int x = 0;
行移到循环外的while (number > 0) {
行之上。然后它将被初始化为0只一次,并且每次遍历循环都可以为其赋予x++
行的新值。
答案 1 :(得分:1)
您继续在循环中重新声明x,导致只有第一个索引具有有意义的数据。将它移到你的循环外面。
答案 2 :(得分:0)
您每次都要将x重新初始化为0。在while循环之外声明它。
答案 3 :(得分:0)
您的计划中存在相当多的错误。最大的一个是你将x归零,然后在while循环中将其递增1。它会将您的数字存储在同一位置(第0位)。比较以下代码段并尝试了解您的错误:
public class Doom{
public static void main(String[] args){
int number = 1234;
int[] list = new int[String.valueOf(number).length()];
int x = 0;
while (number > 0) {
int fork = (number%10);
System.out.println(fork);
list[x] = fork;
x++;
number = number / 10;
}
for (int y : list){
System.out.println(y);
}
}
}