while(m) 问题,蛮简单,但我就是不会!
问题主要出现在 while([color=Red]m[/color]) ,在C里面像这样编辑可以,为什么在java不行。。???[color=Blue]代码如下:[/color]
[code]package ew;
import java.util.Scanner;
public class Untitled1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一位小于6位的数字:");
int m = in.nextInt();
int i,n,k=0;
while(m)
{ n=m%10;
m=m/10;
System.out.println(n);
k+=k; //k可以求位数,相当与计数器
}
System.out.println("你说输入的数字的位数是:"+k);
}
}[/code]
[img]http://sz.photo.store.qq.com/rurl2=be56c3674b470c9caa6104681eee22acd021d8f89c81fdd53ae344bb83a37a9e0986d2be8466d9ffab7bc1ca28ca32e34cc80bc2f88e81a807a6e4c1c343778afffb138711f022f5ea2eb8b1e7a680f8230fff5b[/img]
[[it] 本帖最后由 he20041987 于 2008-3-31 16:38 编辑 [/it]] 的确,while里面只能是boolean类型的值,if等语句中也相同。在这些语句中,Java并不是非零就为真,零为假,而必须是布尔型的
??
while(m) →改成 while(true) 但是运行后[color=Red] System[/color].out.println("你说输入的数字的位数是:"+k); 还是有错的,我真的不知道到底错在哪? 我是新手,还望大家耐心讲解! (真的)这是第二种方法,但结果有点小问题!
[code]package ew;import java.util.Scanner;
public class Untitled1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一位小于6位的数字:");
int m = in.nextInt();
int a,i,k=1;
for ( i = 0; ; i++) {
if (m / 10 != 0) {
k++;
m /= 10;
}
else {
break;
}
}
System.out.println("m的位数是" + k);
for ( i = 0; i<k; i++) {
a = m % 10;
m /= 10;
System.out.print(a + " ");
}
System.out.println("这是它的逆序");
}
}
[/code]
[color=Blue]请输入一位小于6位的数字:
1234
m的位数是4
1 0 0 0 这是它的逆序[/color]
上面又是什么原因啊?? while (m>0)
{
//代码
}
不过怎么才能把 输入的数字正序输出呢???比如 123输出123,而不是321
用数组??? 汗,在java里面可以用数组么? 怎么没有人帮我解决下5#的问题啊!
----------------------------------------------------------------
应该是输出有问题,具体错在那里,我不是很清楚!
回复 5# 的帖子
问题出在m上,第一次用m后,再调用m,其值变了! 忽忽!~~~注意
import java.util.Scanner;public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一位小于6位的数字:");
int m = in.nextInt();
int a,i,k=1;
int mm = m; //注意你下面用的值还是这个m,先保存
for ( i = 0; ; i++) {
if (m / 10 != 0) {
k++;
m /= 10;
}
else {
break;
}
}
System.out.println("m的位数是" + k);
for ( i = 0; i<k; i++) {
a = mm % 10;
mm /= 10;
System.out.print(a + " ");
}
System.out.println("这是它的逆序");
}
}
页:
[1]
