| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 944 人关注过本帖
标题:while(m) 问题,蛮简单,但我就是不会!
只看楼主 加入收藏
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
结帖率:100%
收藏
 问题点数:0 回复次数:8 
while(m) 问题,蛮简单,但我就是不会!
问题主要出现在 while(m) ,在C里面像这样编辑可以,为什么在java不行。。???
代码如下:
程序代码:
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);
    }
    }


搜索更多相关主题的帖子: package public import java 
2008-03-31 16:21
he20041987
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-9-10
收藏
得分:0 
while 括号里的值只能是true或false m是int型  IO包也没有加载 输入是要有异常处理的

[[it] 本帖最后由 he20041987 于 2008-3-31 16:38 编辑 [/it]]
2008-03-31 16:36
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
的确,while里面只能是boolean类型的值,if等语句中也相同。在这些语句中,Java并不是非零就为真,零为假,而必须是布尔型的

I'm here, as always...
2008-03-31 16:59
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
??
while(m)  →改成 while(true)    但是运行后  System.out.println("你说输入的数字的位数是:"+k);    还是有错的,我真的不知道到底错在哪? 我是新手,还望大家耐心讲解! (真的)

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2008-03-31 18:06
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
这是第二种方法,但结果有点小问题!
程序代码:
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("这是它的逆序");
     }
    }
    


请输入一位小于6位的数字:
1234
m的位数是4
1 0 0 0 这是它的逆序


上面又是什么原因啊??

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2008-03-31 18:09
raodoudou321
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-3-31
收藏
得分:0 
while (m>0)
  {
     //代码
  }
不过怎么才能把 输入的数字正序输出呢???比如 123输出123,而不是321
用数组???
2008-03-31 22:28
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
汗,在java里面可以用数组么?  怎么没有人帮我解决下5#的问题啊!
----------------------------------------------------------------
应该是输出有问题,具体错在那里,我不是很清楚!

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2008-04-01 10:57
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
回复 5# 的帖子
问题出在m上,第一次用m后,再调用m,其值变了!   忽忽!~~~

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2008-04-03 08:57
tomhuatek
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-4-5
收藏
得分:0 
注意
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("这是它的逆序");
     }
    }
2008-04-05 05:55
快速回复:while(m) 问题,蛮简单,但我就是不会!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014991 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved