Java 为什么下面的代码不循环打印输入的数字?
我只能使用基本变量类型(在代码中使用),不能使用数组等。 我想让这个代码循环,直到它打印出数字。例如,如果输入的号码是12345,我希望它打印出来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
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 );