黑马程序员技术交流社区

标题: for(int x=0;x<8;x++) x<8是什么意思啊? 求助 麻烦朋友了 [打印本页]

作者: 荣天    时间: 2012-5-11 17:03
标题: for(int x=0;x<8;x++) x<8是什么意思啊? 求助 麻烦朋友了
for(int x=0;x<8;x++)   x<8是什么意思啊? 求助 麻烦朋友了
==================================
public class JinzhiDemo3 {
        /**
         * @param args
         */
        public static void tohex(int number){
                char[] biao={'0','1','2','3',
                                        '4','5','6','7',
                                        '8','9','A','B',
                                        'C','D','E','F'};
                for(int x=0;x<8;x++){          //x<8是什么意思啊?              
                        int temp=number%15;
                        System.out.println(biao[temp]);
                        number=number>>>4;
                }        
        }
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                tohex(60);                        
        }

}

作者: 荣天    时间: 2012-5-11 17:04
自己先顶下
作者: 小小企鹅    时间: 2012-5-11 17:11
本帖最后由 小小企鹅 于 2012-10-27 22:36 编辑

for(int x=0;x<8;x++)  x<8判断x是否小于8,如果为真执行for语句,为假跳出for语句
tohex()函数将一个10进制整数转为16进制字符型
public static void tohex(int number){
                char[] biao={'0','1','2','3',
                                        '4','5','6','7',
                                        '8','9','A','B',
                                        'C','D','E','F'};
                for(int x=0;x<8;x++){          //x<8是什么意思啊?              
                        int temp=number&15;  //把%该为&就能得到正确的16进制的值
                        System.out.println(biao[temp]);
                        number=number>>>4;
                }        
        }

作者: 周素强    时间: 2012-5-11 17:11
一个字节由8个4位组成,所以循环8次就可以了,而且每次循环移动4位。
作者: 成都校区    时间: 2012-5-11 17:14
本帖最后由 贾乐飞 于 2012-5-11 17:22 编辑

for(int x=0;x<8;x++){                        
int temp=number%15;
System.out.println(biao[temp]);
number=number>>>4;
                }        
相当于
int x=0;
while(x<8){               
  int temp=number%15;
  System.out.println(biao[temp]);
  number=number>>>4;
   x++;             }  

就是判断的条件,当x++到大于或者等于8的时候,循环结束。
作者: 李啸    时间: 2012-5-11 17:15
for循环中的三个表达式第一个是声明变量并赋值;第二个是判断当前变量满足此处的条件吗是个boolean类型的;第三个表达式是改变自身的表达式为了让循环有一个为假的条件你这里的x<8就是让它有一个不为真的范围
作者: 黑马-王建雨    时间: 2012-5-11 17:17
int型变量在内存中占4个字节。也就是32个2制位。              
for(int x=0;x<8;x++){          //x<8是什么意思啊?             
                int temp=number%15;
                         System.out.println(biao[temp]);
                         number=number>>>4;
}
该循环体执行一次,number表示的十进制数值对应内存中二进制数值的位数无符号右移4位。移动八次,刚好32位。
作者: 成都校区    时间: 2012-5-11 17:21
补充,看了板凳的答案才知道我理解错楼主的意思,不过应该是4个8位这样说的吧!   因为int类型最高由4个8位组成,也就是总共有32位,而number=number>>>4;
最多也就只能移动8次,所以这里先顶了最多移动8次的判断条件!
作者: 成都校区    时间: 2012-5-11 17:23
{:soso_e118:}  我正编辑着分咋就给别人了捏
作者: 黄坚声    时间: 2012-5-11 17:25
for(int x=0;x<8;x++){          //x<8是循环结束控制语句。              
                        int temp=number%15;
                        System.out.println(biao[temp]);
                        number=number>>>4;
                }        


作者: 孙雪娇    时间: 2012-5-11 17:26
贾乐飞 发表于 2012-5-11 17:23
我正编辑着分咋就给别人了捏

你淡定点行不。。。。。。
作者: 成都校区    时间: 2012-5-11 17:27
孙雪娇 发表于 2012-5-11 17:26
你淡定点行不。。。。。。

不淡定不淡定就不淡定,我现在特别不淡定!~
作者: 郭永岳    时间: 2012-5-11 20:52
for(int x=0;x<8;x++)   x<8是什么意思啊?
答:
1、首先你要先理解什么是for循环? for(<初始化>; <条件表达式>; <增量>)
2、x<8是说整个循环从0开始循环不大于等于8次。

作者: 杨锦    时间: 2012-5-11 20:57
循环8次
作者: 郑文博    时间: 2012-5-11 20:58
int型是4个字节 譬如int型0在内存中存储是 0000-0000 0000-0000 0000-0000 0000-0000 ;number=number>>>4 即向右移4位故只需遍历8次就够了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2