黑马程序员技术交流社区
标题:
循环过程?
[打印本页]
作者:
赵小豪
时间:
2014-4-14 21:00
标题:
循环过程?
本帖最后由 赵小豪 于 2014-4-15 11:38 编辑
public class test4 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i = 0;i<6;i++){
int k = ++i;
while(k<5){
System.out.print(i);
k+=2;
}
}
}
}
作者:
月光海
时间:
2014-4-14 21:16
当i=0时,进入for,执行一句后,k=1,i=1,进入while循环,打印1,执行k+=2,此时,k=3,继续while循环,打印1,再执行k+=2,k=5,不符合while条件,执行i++,此时i=2,执行int k=++i;此时k=3,i=3,进入while,打印3,执行k+=2,此时k=5,不符合while条件,此时i=3,执行,i++,此时i=4,执行 int k = ++i;,此时k=5,i=5,不符合while,继续i++,i=6,退出for,因此打印结果是1 1 3
作者:
虎牛龙马
时间:
2014-4-14 21:20
月光海 发表于 2014-4-14 21:16
当i=0时,进入for,执行一句后,k=1,i=1,进入while循环,打印1,执行k+=2,此时,k=3,继续while循环,打印1 ...
完全正确啊!
作者:
你为谁归来
时间:
2014-4-14 21:33
当i=0的时候,判断i<6为真,开始for循环,k=++i(++在前面先执行i=1,k=1),进入while,判断k=1<5为真,进入while循环。
输出i=1
;执行k+=2;k=3;在判断k=3<5;
再次输出i=1
;然后继续执行k+=2,k=5,判断k=5<为假,结束while循环,执行i++,i=2,判断i=2<6为真,执行for循环,k=++i,k=3(因为k定义在for循环语句第一位,for的每次循环都会将k重新赋值),进如while循环,判断k=3<5,为真,
输出i=3
,执行k+=2,k=5,不满足while条件,跳出循环,执行i++,i=4,判断i<6;执行k=++i,k=5,不满足while循环,执行i++......然后K就一直不满足while的循环条件,i就无法再次输出,直到i<6为假,程序结束。
所以最后输出的结果是:113
作者:
Linuxgg
时间:
2014-4-14 23:54
i++, 先用i,后加1
++i,先加1,后用i
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2