黑马程序员技术交流社区

标题: for和while什么时候用呢 [打印本页]

作者: langmb    时间: 2015-3-11 19:33
标题: for和while什么时候用呢
本帖最后由 langmb 于 2015-3-16 00:20 编辑

刚看了for和while循环,感觉两个用法差不多,什么时候用for,什么时候用while比较好呢???
作者: 执梦而行    时间: 2015-3-11 19:57
其实for与while可以互换的。如果需要通过变量来对循环进行控制,该变量只作为循环增量存在时,区别就体现出来了。
为了循环而定义的变量在for循环结束后就会在内存中释放
而while循环使用的变量在循环结束后还可以继续使用
作者: Dark县令    时间: 2015-3-11 21:43
for与whlie的区别和联系:
for:在for内部定义的变量在循环结束后变量就不能用了。
whlie:while用到的变量在循环结束后可以使用。
for和whlie可以进行互换。
for(一;二;三),一是初始值,二是终止条件,三是循环时的变化量
换成while,就是
一;
while(二){.....三;}  是一样的!
作者: 暗羽部落    时间: 2015-3-11 21:47
其实感觉差不多了!!!for就是循环完了就释放了!!不占用太多内存!!
作者: rhui    时间: 2015-3-11 22:41
有明确循环次数用for,没有的话用while
作者: 亚洲17    时间: 2015-3-11 23:04
for 和while 可以进行互换,如果需要定义魂环变量,用for合适
作者: 我只追求完美    时间: 2015-3-11 23:21
for语句是在范围明确的情况下使用,而while在范围不明确的范围下使用

作者: 山里孩子    时间: 2015-3-12 07:13
本帖最后由 山里孩子 于 2015-3-12 07:21 编辑
我只追求完美 发表于 2015-3-11 23:21
for语句是在范围明确的情况下使用,而while在范围不明确的范围下使用

先说下循环语句执行循环需要的4个条件:
        初始化条件;
        判断条件;
        循环体;
        控制条件(结束循环条件)。

while和for回顾下:

for (初始化条件 ; 循环条件 ; 控制语句)
{
    循环体;
}

while用相同思路表示:

初始化条件;
while ( 循环条件 )
{
     循环体;
      控制语句;
}
while举个例子:循环结束条件确定,但是循环次数不确定情况。
我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。
    请问,我折叠多少次,可以折成或超过珠穆朗玛峰的高度。
  1. class WhileDemo3
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //定义循环次数
  6.                 int count = 0;
  7.                 //定义 纸的厚度,初始值。都拿整数进行计算
  8.                 int start = 1;
  9.                 //循环结束条件
  10.                 int end = 884800;

  11.                 while ( start < end )
  12.                 {
  13.                         start *= 2;
  14.                         count++;
  15.                 }
  16.                 System.out.println("折叠的次数为:"+count);

  17.         }
  18. }
复制代码




作者: cishengbuhuan    时间: 2015-3-12 09:19
当不知道循环次数,和执行完后还需要操作变量值时使用while,否则使用for

作者: DxxD    时间: 2015-3-12 09:37
写代码就像吃饭,用勺子喝汤,用筷子夹菜,当然返回过来肯定也可以,只是看你觉得方不方便,把for跟while的用法搞清楚了,到时候用的时候自然而然就会选择了!!!
作者: lostnotes    时间: 2015-3-12 10:09
for和while可以互换,区别就在于for为了循环而定义的变量在for循环结束就在内存中释放了。而while循环使用的变量在循环结束后还可以继续使用 ,    我个人认为这个到底用哪个还是要依据整个代码的情况如果说循环定义的变量只在循环内使用那就用for最好。提高内存的使用率。希望对你有一点帮助
作者: 竹叶君子    时间: 2015-3-12 11:08
二楼和三楼总结的好
作者: Sou男人    时间: 2015-3-12 22:48
for和while都是java中用来循环的关键字,但是他们又有不同,for有三个参数,在第二个参数设置循环结束条件,第三个参数设置循环步进,当循环条件不满足时,循环结束;while只有一个参数,用来控制循环条件;另外,在循环体中定义的变量对内存的要求也不一样,for定义的变量在循环结束后就结束内存占用,但是while还在内存中,可以继续使用
作者: zgjswp    时间: 2015-3-13 09:04
可以互换,只是for循环用完了会释放变量内存,while则可以继续使用
作者: huhanghao    时间: 2015-3-13 09:09
for语句简单来说就是有条理有步骤的while语句。while语句是满足某个条件就跳出,for语句也是这样,只是你可能会有条件的变化。不过for一般用来计数用,在内部写的是在每一次执行的内容。比如,你要执行打印hello十次,那么for循环肯给是最优选择。
作者: 理当如此    时间: 2015-3-13 10:02
楼主既然问到了for和while的区别,我就简单的把三种循环语句while、do while和for的区别详细说下:
do while语句格式:
do
{
执行语句;
}
while(条件表达式);
java执行程序是从上而下的,当读到while(条件表达式),条件满足就循环,条件不满足就跳出这个程序。以上可看出,先执行执行语句,然后在判断条件表达式是否满足,满足就回来继续执行语句,否则就跳出这个循环语句。
以上可判断do while的使用情况:当你要执行语句(也就是循环体)至少被执行一次,就用do while语句。
while语句格式:
定义初始化表达式  //定义变量
while(条件表达式)
{
执行语句;
}
可看出与do while的区别,while先判断条件,满足条件就执行后面的执行语句,不满足就跳出这个循环语句。
它定义的变量是在while语句之外,所以不管while语句是否执行或者执行多少次,定义的变量一直存在。
for语句格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
初始化表达式也就是定义变量,它是在for语句之内的,也就是说它只在for语句内有效,当for语句循环结束或者没有执行,就不存在这个定义的变量。
以上可看出for和while的区别:当你定义变量来控制循环语句,之后仍然想使用这个变量,就用while语句。当你定义变量控制循环语句,也就是说这个变量用完扔了,就用for语句。其它情况for语句和while是可以互换的。



作者: furymachine    时间: 2015-3-13 11:12
来个简单的({:2_35:}):
for:大多数用于已知循环次数的循环。
while:先判断,后执行。
do() while;:先执行,后判断。
作者: 蓝玉    时间: 2015-3-13 11:16
大家都总结的好好啊
作者: 女神从来不加班    时间: 2015-3-13 17:46
其实要看你的使用习惯了 先考虑怎么实现功能 回头再想想哪个效率更高 代码更漂亮
作者: 张耀东    时间: 2015-3-13 22:10
不确定循环次数时用while
作者: 大神在何方    时间: 2015-3-13 23:44
for就是循环完了就释放了,不占用那么多内存。因为变量设置在了循环语句表达式当中,所以会释放




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