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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 叮当 于 2014-7-19 12:00 编辑

while与for,我知道都是用于循环,知道for比while更美观,还有其它区别不?用的时候我就晕了。

评分

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

查看全部评分

19 个回复

倒序浏览
用的最多的还是while,因为简洁,但也要看案例,一般规定次数的就用for循环,没规定次数的用while较多
回复 使用道具 举报
╄Tracyぺ 发表于 2014-7-16 23:27
用的最多的还是while,因为简洁,但也要看案例,一般规定次数的就用for循环,没规定次数的用while较多 ...

你的意思就是一直重复,直到结束或答案正确,用while?我一下想明白了,一下又没有想明白
回复 使用道具 举报
for和while两个都是循坏,具体哪个好,要按照各自的需求了。一般情况,两个是通用的
回复 使用道具 举报
从语法本身来说这两者是通用的
但实际应用中
for一般用于读取数组,或者字符串这种有索引的数据
while一般配合break来实现流程的控制
至于习惯用哪个因人而异吧

评分

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

查看全部评分

回复 使用道具 举报 1 0
一位记者采访楼主:“最近外界疯传到底是用for循环还是用while循环,不知道您怎么看”?不少人纳闷:怎么提这种问题?大家都关注楼主怎样回答。楼主肯定地说:“都不用!”全场哗然,议论纷纷。楼主看出了大家的疑惑,补充说了一句:“我用do-while!”顿时掌声雷动,掌声叫好声不断,楼主的机智打动了在场的所有人,掌声经久不息!
回复 使用道具 举报
明确循环次数的用for,需要先执行一次再判断的用do-while,先判断后执行的就用while
回复 使用道具 举报
一般来说,如果明确要求要转几次循环的,或者能够得到循环次数的用for比较多,比如一个数组,循环次数是数组的长度一般。while一般用于其他条件的比较多,比如while(a==b&&a>c)类似,我是这么理解的

评分

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

查看全部评分

回复 使用道具 举报
muyyi 发表于 2014-7-16 23:44
从语法本身来说这两者是通用的
但实际应用中
for一般用于读取数组,或者字符串这种有索引的数据

赞同               
回复 使用道具 举报
for据说是标准循环  循环变量,结束条件,更新循环变量的表达式很清楚。
回复 使用道具 举报
for据说是标准循环  循环变量,结束条件,更新循环变量的表达式很清楚。对于那些没有明确循环变量或循环变量更新自然的用whil更美观

评分

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

查看全部评分

回复 使用道具 举报
while一般是你不知道循环几次的时候用的,for是知道循环次数时用的,当然for也可以用在不知道循环次数的时候用。如果真的分不太清楚的话就套一下,试试看for能不能用,for不能用的话就while试试。它们两没有性能上的区别。循环写多了你就会顺手拈来了。

评分

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

查看全部评分

回复 使用道具 举报
叮当 发表于 2014-7-16 23:35
你的意思就是一直重复,直到结束或答案正确,用while?我一下想明白了,一下又没有想明白 ...

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

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

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

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

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

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

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

评分

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

查看全部评分

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