黑马程序员技术交流社区

标题: while和for的问题 [打印本页]

作者: 354620815    时间: 2014-10-4 19:03
标题: while和for的问题
while(true){...} 和 for( ; ; ){....}
有什么区别?
作者: xuanguofeng    时间: 2014-10-4 19:05
本帖最后由 xuanguofeng 于 2014-10-4 19:07 编辑

while循环:先进行条件判断,再执行循环体,如果条件不成立,退出循环。for循环:限制性变量初始化部分,再进行循环条件判断,然后执行循环体,最后进行循环变量的计算。如果条件不成立,跳出循环。


作者: 叶尔纳    时间: 2014-10-4 19:17
while 你不知道要循环几次,而for则相反
我想最大的区别就是这个
作者: 2406035442    时间: 2014-10-4 19:50
确定循环次数用for,不确定用while
作者: zz_job    时间: 2014-10-4 20:23
两者可以互相转换的   只是代码上写法不同   确定循环次数的用for更方便,不确定循环次数用while更方便   仅此而已
作者: luofeng    时间: 2014-10-4 20:36
以前用C时记得for(;;)循环效率要高些,JAVA不知道
作者: liuxiang    时间: 2014-10-4 21:08
for可以确定循环次数哦,while根据循环条件判断,不能确定循环次数
作者: 九零零    时间: 2014-10-4 22:00
这两个都是简单的无限循环,貌似没什么区别
作者: 杨佳名    时间: 2014-10-5 00:15
九零零 发表于 2014-10-4 22:00
这两个都是简单的无限循环,貌似没什么区别

for怎么是无限?
作者: suoxidong    时间: 2014-10-5 09:09
1、变量的生命周期不同。
2、定义的初始化变量,操作完后还要继续使用,用while循环。
作者: 张业婷    时间: 2014-10-5 09:14
针对上面两个循环都是无限循环,没有任何区别!
作者: 黄小橙    时间: 2014-10-5 09:25
while(true){...}是无限循环,但是里面的条件也是可以换的,
for( 1;2 ;3 ){....}和 1 while(2){... 3} 效果一样。
作者: kid1943    时间: 2014-10-5 09:29
其实这两种写法区别不大,比如
  1. for(int=0;i<10;i++){
  2. system.out.print(i);
  3. }


  4. int i=0
  5. while(i<10){
  6. System.out.print(i);
  7. }
复制代码

打印的结果都一样,而执行效率方面也基本没什么太大区别,楼主可以看下这遍文章http://jarg.iteye.com/blog/1005821
作者: bayshier    时间: 2014-10-5 09:38
区别就是......楼上正解
作者: 九零零    时间: 2014-10-5 21:57
杨佳名 发表于 2014-10-5 00:15
for怎么是无限?

如果for循环没有写控制条件就是默认为ture,所以就是无限循环啊
作者: 杨佳名    时间: 2014-10-5 21:58
九零零 发表于 2014-10-5 21:57
如果for循环没有写控制条件就是默认为ture,所以就是无限循环啊

嗯嗯 刚开始没看清要求。
作者: 354620815    时间: 2014-10-5 22:08
都挺有道理的。。。

作者: Imp_x    时间: 2014-10-5 23:07
kid1943 发表于 2014-10-5 09:29
其实这两种写法区别不大,比如

打印的结果都一样,而执行效率方面也基本没什么太大区别,楼主可以看下这遍 ...

在循环外面再输出一次i的值有惊喜{:3_67:}
作者: 油油油菜花    时间: 2014-10-5 23:54
循环次数的区别 for循环指定循环次数 而while则是条件循环
作者: kid1943    时间: 2014-10-6 09:32
kid1943 发表于 2014-10-5 09:29
其实这两种写法区别不大,比如

打印的结果都一样,而执行效率方面也基本没什么太大区别,楼主可以看下这遍 ...

while里面写小了i++不好意思
作者: 嘿~~    时间: 2014-10-6 14:23
while()后这个括弧里不一定放的是true,只要是个判断条件就行,不能操作角标。for循环可以操作角标,有明确的循环次数限制。
作者: wf111sxwf    时间: 2014-10-7 10:56
在你确定循环次数的情况下用for,当不确定循环次数,只知道限制条件时用while
作者: mingtianrsm    时间: 2014-10-7 11:06
没啥区别吧,都是无限循环
作者: 18334705181    时间: 2014-10-7 17:50
for中的定义的变量值为局部变量,for循环结束后,变量就垃圾了,从内存中消失,而while,循环后变量依然存在,直到主函数运行结束后才会被垃圾;
作者: 18334705181    时间: 2014-10-7 18:05
杨佳名 发表于 2014-10-5 00:15
for怎么是无限?

for的无限循环表达式:
for(int x=0;true;x++)或者这样搞
for(int x=1;x>2; )

作者: 千里马    时间: 2014-10-7 18:47
这两个都是无限循环的语句,非要说它们之间的区别的话,那就是:while循环是先判断后执行循环语句,for循环则是根据内部判断条件后执行循环体
作者: 838598737    时间: 2014-10-9 08:34
while可以在循环访问i的值,而for中的 i出了for循环就就消失了
作者: yl82846094    时间: 2014-10-9 08:47
看看!!!!!




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