黑马程序员技术交流社区

标题: while与for,有区分什么时候用while,什么时候用for? [打印本页]

作者: 叮当    时间: 2014-7-16 23:08
标题: while与for,有区分什么时候用while,什么时候用for?
本帖最后由 叮当 于 2014-7-19 12:00 编辑

while与for,我知道都是用于循环,知道for比while更美观,还有其它区别不?用的时候我就晕了。
作者: ╄Tracyぺ    时间: 2014-7-16 23:27
用的最多的还是while,因为简洁,但也要看案例,一般规定次数的就用for循环,没规定次数的用while较多
作者: 叮当    时间: 2014-7-16 23:35
╄Tracyぺ 发表于 2014-7-16 23:27
用的最多的还是while,因为简洁,但也要看案例,一般规定次数的就用for循环,没规定次数的用while较多 ...

你的意思就是一直重复,直到结束或答案正确,用while?我一下想明白了,一下又没有想明白
作者: czwanglei    时间: 2014-7-16 23:39
for和while两个都是循坏,具体哪个好,要按照各自的需求了。一般情况,两个是通用的
作者: muyyi    时间: 2014-7-16 23:44
从语法本身来说这两者是通用的
但实际应用中
for一般用于读取数组,或者字符串这种有索引的数据
while一般配合break来实现流程的控制
至于习惯用哪个因人而异吧
作者: 向晓伟    时间: 2014-7-17 00:16
一位记者采访楼主:“最近外界疯传到底是用for循环还是用while循环,不知道您怎么看”?不少人纳闷:怎么提这种问题?大家都关注楼主怎样回答。楼主肯定地说:“都不用!”全场哗然,议论纷纷。楼主看出了大家的疑惑,补充说了一句:“我用do-while!”顿时掌声雷动,掌声叫好声不断,楼主的机智打动了在场的所有人,掌声经久不息!
作者: 昕☆Rainbow    时间: 2014-7-17 02:05
明确循环次数的用for,需要先执行一次再判断的用do-while,先判断后执行的就用while
作者: qsq0000hm    时间: 2014-7-17 07:30
一般来说,如果明确要求要转几次循环的,或者能够得到循环次数的用for比较多,比如一个数组,循环次数是数组的长度一般。while一般用于其他条件的比较多,比如while(a==b&&a>c)类似,我是这么理解的
作者: 为爱编程    时间: 2014-7-17 08:13
muyyi 发表于 2014-7-16 23:44
从语法本身来说这两者是通用的
但实际应用中
for一般用于读取数组,或者字符串这种有索引的数据

赞同               
作者: 深夜的空气    时间: 2014-7-17 08:32
for据说是标准循环  循环变量,结束条件,更新循环变量的表达式很清楚。
作者: 深夜的空气    时间: 2014-7-17 08:34
for据说是标准循环  循环变量,结束条件,更新循环变量的表达式很清楚。对于那些没有明确循环变量或循环变量更新自然的用whil更美观
作者: 陈君    时间: 2014-7-17 08:45
while一般是你不知道循环几次的时候用的,for是知道循环次数时用的,当然for也可以用在不知道循环次数的时候用。如果真的分不太清楚的话就套一下,试试看for能不能用,for不能用的话就while试试。它们两没有性能上的区别。循环写多了你就会顺手拈来了。
作者: ╄Tracyぺ    时间: 2014-7-17 14:44
叮当 发表于 2014-7-16 23:35
你的意思就是一直重复,直到结束或答案正确,用while?我一下想明白了,一下又没有想明白 ...

while循环要根据自己写的条件结束循环,for根据次数,如果真碰到循环的题目不知道怎么用时,就写while(true){},但循环体里需要写让它结束的条件语句
作者: suzhousongkan    时间: 2014-7-17 15:52
本帖最后由 suzhousongkan 于 2014-7-17 16:21 编辑

for (初始化语句; 条件语句; 控制语句)
{
        语句1;
        语句2;
        ……
}

初始化语句部分:(1)可空着,你可以在for语句之前就声明好变量、变量赋初值;这点和while语句相似。
                           (2)不空着,声明变量、赋初值。
个人喜欢(2),简洁些,少几行代码。
另外,条件语句必须有;控制语句可以写在{……}中,这和while语句有区别。

while(条件表达式)
{
        语句1;
        语句2;
        ……
}

while{ }里面需要有控制语句。

实际运用,个人感觉功能没什么区别,就是注意语句形式,如for ()里面三个部分,除了条件语句必须,其他两个可以灵活放在其他地方。

另外,楼上有人提到了break,用途是直接跳出循环体。在for语句中还真没怎么见过,while语句有这么写。
最好自己多找几个有循环体例子(如水仙花数、汉诺塔,等等),看看和自己的代码比较下,印象会深刻,也容易明白。


作者: FrancisTan    时间: 2014-7-17 15:53
美观?你是听哪个老师讲的哟? while 一般用于不知道循环次数时,for用于已知循环次数时!它们二者是可以相互转换的……
作者: 小郭zaiheima    时间: 2014-7-17 22:37
我是来看回帖的
作者: liinss    时间: 2014-7-18 17:05
用while循环可以全部改用for循环替代,但在某些特殊用途中还是用while方便些,比如无法确定条件时。
作者: 蜗牛阿布    时间: 2014-7-22 00:37
记住明确循环次数的用FOR不就行啦,不必太深究,弄懂两个的一般表达式是怎样的,会用就行。真正到要用的时候你就会根据不同的案例来使用了。
作者: yiru    时间: 2014-7-22 10:38
个人感觉while的运算速度比for要快,因为以前用别的软件编程,当时用的时候,for达到3个嵌套,运算速度是20秒左右,一旦达到4个嵌套,那貌似就是数个小时的时间,运算时间是幂增长。
作者: 官方    时间: 2014-9-17 09:13
自己都会了明白了 遇到什么案例就知道用什么




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