黑马程序员技术交流社区

标题: java的for循环和while循环哪个效率更高?为什么? [打印本页]

作者: 张校云    时间: 2011-10-6 15:32
标题: java的for循环和while循环哪个效率更高?为什么?
java的for循环和while循环哪个效率更高?为什么?
作者: 赵江锋    时间: 2011-10-6 15:37
我觉得:
1.选择那种循环表达式考虑效率的因素不大。在执行循环代码的过程中,循环的次数应该是影响效率的决定性因素,所以我们更多的要关注于如何减少循环次数。比如说在嵌套循环中,那个作为外循环,那个作为内循环,这里就有比较大的效率差别。
2.选择那种循环表达式应该由我们需要的目的决定的。这三种表达式虽然都是用来执行循环,但是潜在的还是有点微小的差别。for更通用一点,而且灵活性也强一点。while()先判断是否满足条件,然后在决定是否循环。do...while()也执行一次,然后在决定是否再循环。准确把握这些表达式的“潜台词”才是正确选择的关键。
3.由于for的形式比较规范,所以比较容易理解。很多书中都推荐尽量用for形式的循环。这样写出的代码更容易读。
作者: 姚志华    时间: 2011-10-6 15:48
应该不存在说哪个效率更高,要看你的条件,一般循环次数确定的选用FOR,循环次数不确定的一般用WHILE
作者: 刘朋朋    时间: 2011-10-6 17:53
for循环适用于限制循环次数,while适用于限制循环条件。
作者: 宁超    时间: 2011-10-6 22:04
基本上没有区别,即使现在通过汇编代码发现 .
for多一条汇编语句,也并不代表while的效率就高。
当编译器优化后,while和for都是一样。
当循环次数很大的时候,比如1到2的n次方时,选用while循环再break跳出比用for循环来执行要有效率.
作者: 王家虎    时间: 2011-10-6 22:34
通常讲while和for都有初始化值,都有判断条件和改变变量的语句,所以它们的效率不分高低。只能说在什么时候使用哪种循环好些,当循环的次数已知时最好使用for循环,当循环次数不知时使用while循环。
作者: 黄新灵    时间: 2011-10-6 23:05
我认为效率是不分伯仲的,我比较关心for和while有没有区别用于特定的循环场合,因为至今编写的代码遇到循环遍历时,它哥俩都可以用。。
作者: wsssx    时间: 2011-10-9 22:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: 康健    时间: 2011-10-9 22:20
书上说循环次数明确,大都采用for循环,以及do while,while循环用在循环次数不确定的情况下。个人感觉一般的循环不判定条件的用for ,有条件的用while
作者: 庄纪光    时间: 2011-10-9 22:34
当循环次数很大的时候,选用while循环再break跳出比用for循环来执行效率更高。在循环次数已知的情况下,用for循环;在循环次数未知的情况下,用while循环。
作者: 张英杰    时间: 2011-10-9 22:37
之前看过有人写代码测试过,结论是,在Java语言,for,while循环的性能是一样的,其实存在即是道理,既然java存在多种循环判断方式,就一定各有优劣,具体情况还得看程序员对代码的优化和算法的使用...如果你感兴趣,推荐你看一下这篇文章,用代码测试了java中for、和while的效率,希望能帮到你

http://jarg.iteye.com/blog/1005821
作者: 张洋铭    时间: 2011-10-10 19:24
1. 这问题不好回答,如果是标准的while和for的语句的话,只能从跳转的次数上判断效率.

2. while 只跳转一次判断条件真假,for要跳转2次,判断条件后执行,然后跳到迭代那,再判断调价。

3. 从硬件角度看,跳转的越多应该就越慢,所以while效率应该高些,但我觉得几乎看不出来,现在硬件那么强大!

4. 对程序的评价点:1. 可维护性 2. 可靠性  3.可阅读性 4.效率(对效率看的不是特重,因为硬件太牛X了,效率都挺高)   
作者: zhangxinxin    时间: 2011-10-10 22:05
哪个效率高不太清楚,不过如果需要定义循环增量时,用for语句更为合适。因为for语句执行完后,循环增量在内存中已释放;而while语句中的循环增量可能在while语句结束后没有被释放。
作者: 刘浩    时间: 2011-10-11 00:21
其实 while 和for几乎一样,是可以互换的。

1.如果定义变量的目的只为循环的增量存在,只为控制的次数,对好使用for循环。

2.如果敌不过一变量被循环后,还需好继续被使用。 可以使用while语句。
作者: chishibo    时间: 2011-10-12 21:17
for循环更高一些,他这一容易快捷的便利出你所需要的东西,没有局限性。




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