Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么下面的代码不循环打印输入的数字?_Java_Loops - Fatal编程技术网

Java 为什么下面的代码不循环打印输入的数字?

Java 为什么下面的代码不循环打印输入的数字?,java,loops,Java,Loops,我只能使用基本变量类型(在代码中使用),不能使用数组等。 我想让这个代码循环,直到它打印出数字。例如,如果输入的号码是12345,我希望它打印出来 1 2 3 4 5 但是,它只打印 1 0 0 0 0 任何输入的数字只能有5位数字 int num=0; System.out.println(“输入一个整数:”); num=linput.nextInt(); int n=5//输入的数字应为5位; int i=num; 对于(n=5;n>=1;n--){ 如果(n>0){ 对于(int p

我只能使用基本变量类型(在代码中使用),不能使用数组等。 我想让这个代码循环,直到它打印出数字。例如,如果输入的号码是12345,我希望它打印出来

1 
2
3
4
5
但是,它只打印

1
0
0
0
0
任何输入的数字只能有5位数字

int num=0;
System.out.println(“输入一个整数:”);
num=linput.nextInt();
int n=5//输入的数字应为5位;
int i=num;
对于(n=5;n>=1;n--){
如果(n>0){
对于(int p=n;p>1;p--){
i=i/10;
}
int-samplei=I;
i=i-(10*(样本i/10));
if(i<0){
i=(i*-1);
}
系统输出打印LN(i);
}
}

1-对每个简单问题使用嵌套循环是非常糟糕的主意。始终尝试使用非嵌套循环

2-在下面的代码中,我使用数组列表存储所有数字,然后向后打印

3-以下代码是通用代码,适用于任何长度(数字长度)

int num=12345;
ArrayList al=新的ArrayList();
整数计数=0;
while(num!=0){
所有添加(数量%10);
num=num/10;
计数++;
}
对于(int i=count-1;i>=0;i--){
System.out.println(al.get(i));
}
您的解决方案似乎过于复杂

我错过什么了吗?

…那么您也不能使用流


请格式化你的代码,这是很难阅读所有额外的空间和不正确的缩进。此外,您不需要两个循环,只需要1并使用
%
(模)运算符。如果您希望人们阅读您的代码,建议您以可读的方式编写。特别是适当的压痕。这也应该是一个很好的选择。
    int num = 12345;
    ArrayList<Integer> al = new ArrayList<Integer>();
    int count = 0;
    while(num != 0) {
        al.add(num%10);
        num = num/10;
        count++;
    }
    for(int i = count-1; i >=0 ; i--) {
        System.out.println(al.get(i));
    }
System.out.println( "Enter an integer: " );
int num = linput.nextInt();
("" + num).chars().forEach( c -> System.out.println( (char)c ) );
int num = linput.nextInt();    
String s = ("" + num);
for( int i = 0; i < s.length(); i++ )
  System.err.println( s.charAt( i ) );
public void printTheDigits( int n ) {
  if( (n % 10) == 0 )
    return;
  printTheDigits( n / 10 );
  System.err.println( n % 10 );
}

int num = linput.nextInt();
printTheDigits( num );