为何每执行一次循环i的值便会+1
if(i++ % 10 == 0)这个语句中不应该只是作为判断用的吗,比如第一次i=1,第二次再循环时i不是又变回1了吗
前面不是设定了一个条件吗?每输出10个byte就换行,这个if语句就是用来换行的
while((b=in.read())!=-1){
if(b<=0xf)//如果输出的整形b字节小于等于4位,就让它补0,就是让它刚好占一个字节,便于观察
System.out.print("0");
System.out.print(Integer.toHexString(b)+" ");//将整形b转换为十六进制表示的字符串
if(i++%10==0){
System.out.println();
}
在while循环中,按顺序来。一开始i=1;开始循环,输出一个b并且不换行,然后if语句判断i,i自增1,这时候i=2了,和10的余数不为0,所以不用换行,第一次循环结束。
开始第二次循环,输出第二个b 并且不换行,在用if语句来判断i ,这个时候的i已经是2了,在上一次的循环已经自增了1,i再次自增1,这个时候i=3了,继续和10求余,余不为0,不换行。
当i=10的时候,if语句成立,也就是i和10的余为0了,该换行了。
下一步就是i=11,和10余不为0,不换行。
到i=20的时候,和10的余又0,换行。
你说的i=1;是他在while循环语句外面赋的初始化值,i是变量。在while循环中一直在变的
我说的小学生都看的懂了
这个问题选择不回答,一直在绕圈
i++的意思是下一次调用到i的时候,i+1。第一次循环是1,到第二次循环就变成2,依次+1。
所以每次循环它的值都改变了。