A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

java的for循环和while循环哪个效率更高?为什么?

评分

参与人数 1技术分 +1 黑马币 +10 收起 理由
admin + 1 + 10

查看全部评分

14 个回复

倒序浏览
我觉得:
1.选择那种循环表达式考虑效率的因素不大。在执行循环代码的过程中,循环的次数应该是影响效率的决定性因素,所以我们更多的要关注于如何减少循环次数。比如说在嵌套循环中,那个作为外循环,那个作为内循环,这里就有比较大的效率差别。
2.选择那种循环表达式应该由我们需要的目的决定的。这三种表达式虽然都是用来执行循环,但是潜在的还是有点微小的差别。for更通用一点,而且灵活性也强一点。while()先判断是否满足条件,然后在决定是否循环。do...while()也执行一次,然后在决定是否再循环。准确把握这些表达式的“潜台词”才是正确选择的关键。
3.由于for的形式比较规范,所以比较容易理解。很多书中都推荐尽量用for形式的循环。这样写出的代码更容易读。

评分

参与人数 1技术分 +2 收起 理由
李印东老师 + 2 写的很认真。

查看全部评分

回复 使用道具 举报
应该不存在说哪个效率更高,要看你的条件,一般循环次数确定的选用FOR,循环次数不确定的一般用WHILE

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
for循环适用于限制循环次数,while适用于限制循环条件。
回复 使用道具 举报
基本上没有区别,即使现在通过汇编代码发现 .
for多一条汇编语句,也并不代表while的效率就高。
当编译器优化后,while和for都是一样。
当循环次数很大的时候,比如1到2的n次方时,选用while循环再break跳出比用for循环来执行要有效率.

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
通常讲while和for都有初始化值,都有判断条件和改变变量的语句,所以它们的效率不分高低。只能说在什么时候使用哪种循环好些,当循环的次数已知时最好使用for循环,当循环次数不知时使用while循环。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 赞一个!

查看全部评分

回复 使用道具 举报
黄新灵 黑马帝 2011-10-6 23:05:05
7#
我认为效率是不分伯仲的,我比较关心for和while有没有区别用于特定的循环场合,因为至今编写的代码遇到循环遍历时,它哥俩都可以用。。

评分

参与人数 1技术分 +1 黑马币 +10 收起 理由
wangfayin + 1 + 10 新兵入伍!呵呵……

查看全部评分

回复 使用道具 举报
wsssx 2011-10-9 22:08:41
8#
提示: 作者被禁止或删除 内容自动屏蔽
回复 使用道具 举报
康健 黑马帝 2011-10-9 22:20:44
9#
书上说循环次数明确,大都采用for循环,以及do while,while循环用在循环次数不确定的情况下。个人感觉一般的循环不判定条件的用for ,有条件的用while

评分

参与人数 1技术分 +1 黑马币 +10 收起 理由
wangfayin + 1 + 10 赞一个!鼓励一下……

查看全部评分

回复 使用道具 举报
当循环次数很大的时候,选用while循环再break跳出比用for循环来执行效率更高。在循环次数已知的情况下,用for循环;在循环次数未知的情况下,用while循环。
回复 使用道具 举报
之前看过有人写代码测试过,结论是,在Java语言,for,while循环的性能是一样的,其实存在即是道理,既然java存在多种循环判断方式,就一定各有优劣,具体情况还得看程序员对代码的优化和算法的使用...如果你感兴趣,推荐你看一下这篇文章,用代码测试了java中for、和while的效率,希望能帮到你

http://jarg.iteye.com/blog/1005821

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 赞一个!

查看全部评分

回复 使用道具 举报
哪个效率高不太清楚,不过如果需要定义循环增量时,用for语句更为合适。因为for语句执行完后,循环增量在内存中已释放;而while语句中的循环增量可能在while语句结束后没有被释放。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
张洋铭 黑马帝 2011-10-10 19:24:09
13#
1. 这问题不好回答,如果是标准的while和for的语句的话,只能从跳转的次数上判断效率.

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

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

4. 对程序的评价点:1. 可维护性 2. 可靠性  3.可阅读性 4.效率(对效率看的不是特重,因为硬件太牛X了,效率都挺高)   

评分

参与人数 1技术分 +1 黑马币 +1 收起 理由
admin + 1 + 1

查看全部评分

回复 使用道具 举报
刘浩 黑马帝 2011-10-11 00:21:56
14#
其实 while 和for几乎一样,是可以互换的。

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

2.如果敌不过一变量被循环后,还需好继续被使用。 可以使用while语句。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
chishibo 黑马帝 2011-10-12 21:17:12
15#
for循环更高一些,他这一容易快捷的便利出你所需要的东西,没有局限性。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马