标题:这个运行后为什么没有结果,求大神指点
只看楼主
feihyhl
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-8
结帖率:100%
已结贴  问题点数:20 回复次数:4 
这个运行后为什么没有结果,求大神指点


public class Zuoye {
  public static void main(String[] args){
    for(int i=21;i==i%2;i=i/2){
       int yu=i%2;
       System.out.println(yu );
    }
  }
}
搜索更多相关主题的帖子: public 
2013-09-09 14:29
husiwen
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:227
专家分:1125
注 册:2010-5-23
得分:10 
21==21%2 返回false  跳出for了   你是要实现什么逻辑
2013-09-09 15:43
feihyhl
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-8
得分:0 
回复 2楼 husiwen
把那个数转换成二进制输出
2013-09-09 16:15
husiwen
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:227
专家分:1125
注 册:2010-5-23
得分:10 
回复 3楼 feihyhl
String result = Integer.toBinaryString(21);


如果你要自己 实现可以用  每次用掩码取最后一个数字出现   再拼成字符串

int a = 21;
String res = "";
while (a != 0) {
    res = (a & 1) + "" + res;
    a = a >> 1;
}
System.out.println(res);//输出:10101

再说明白点:    a&1    相当于你的   a%2
               a=a>>1 相当于你的  a=a/2;

[ 本帖最后由 husiwen 于 2013-9-9 17:35 编辑 ]
2013-09-09 17:21
feihyhl
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-8
得分:0 
回复 4楼 husiwen
谢谢你的耐心回答
2013-09-09 21:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-420330-1-1.html




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

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