黑马程序员技术交流社区

标题: 循环中for和while的区别? [打印本页]

作者: zhrnghgwsws    时间: 2014-5-24 18:01
标题: 循环中for和while的区别?
循环中for和while的区别?
作者: 木华    时间: 2014-5-24 18:15
for循环又称(计数器式循环)也就是说for循环大都是应用于明确循环次数这样的循环,while(当型循环)是不定次数循环,用在循环次数不确定的情况下。
作者: 136616244    时间: 2014-5-24 18:22
今天刚看到以前不知道的一点,while的执行体和跌代体在一起,如果执行体后面加上continue 后面的跌代体执行不到,
for的执行体和跌代替分离,执行体后面加continue  跌代体还是是会执行。for里面除了两个封号不能省略之外其余都可以省略!
作者: stream    时间: 2014-5-24 19:01
太无聊的贴了。。
作者: 七弦    时间: 2014-5-24 20:10
本帖最后由 七弦 于 2014-5-24 20:12 编辑

个人感觉for循环比较简洁,会比while更常用些,
像写固定次数循环的时候for就比较好,
for(int x=0; x<10; x++){
  System.out.println("hello"+x);
}
而用while则是这样:
int x=0;
while(x<10){
  System.out.println("hello"+x);
}
看起来没太大区别,但是用for更节省资源,for的x用完会释放,
也就是说结束循环后还可以定义x变量作为其他用途,
就不如在定义一个数组,Integer[] x = {1,2,3};
while就不行,用完之后x不会被释放,还占用资源,
所以说只为循环增量而存在就用for。

另外写无限循环的时候用while就比较好了,而且还可以定义标记。
当然,这两种形式基本上是可以互换使用的,视情况和个人喜好而定。

作者: 黑马粉、峥    时间: 2014-5-24 23:19
for和while可以互换。如果用于定义循环增量。用for更合适。因为节约内存。

当然,当我们在写测试程序时,为了书写的简洁,也是可以用while,因为容易看。

不过建议使用for

作者: 彭飞    时间: 2014-5-24 23:41


楼主现在的阶段,
记住:

for 是确定次数的循环。
while  是不确定次数的循环

至于更多,的区别,请看继续看视频。
作者: woshihq    时间: 2014-5-24 23:45
我觉得没什么区别,都是循环,你用的多就会发现两者没什么区别,只是用法不一样,个人觉得for常用点
作者: java木    时间: 2014-5-25 00:10
知道循环次数可以用for,不知道循环次数但知道循环继续的条件就用while。大多时候他们可以互相转换。
还有一点,for循环是在循环内定义变量,出来该循环变量就会释放,比较省内存一点。
作者: \(^o^)/    时间: 2014-5-26 01:32
while是一个循环语句,也就是说只要条件满足,就会执行一次循环体,执行完以后会再判断一次条件,如果满足条件,还会再执行一次,终而复始,除非你在循环中对条件进行了改变才会从
循环中跳出来。例如:
class  AB
{
public static void main(String[] args)
{
  int x=1;
  while(x<3)
  {
   System.out.print("x="+x);
   x++;  //每当循环一次x自增1,当x>=3时,while内的条件不满足,循环则跳出。
  }
}
}
结果输出为:x=1  x=2
while还有一种和do在一起的用法,while是先判断条件,只有条件满足才执行,do while先执行再判断条件,条件满足再继续执行,简单一句话,do while无论条件是否满足循环体至少执行一
次。
class AB
{
public static void main(String[] args)
{
  int x=1;
  do
  {
   System.out.println("x="+x);
   x++;
  }
  while(x<1);
}
}  
结果输出为:x=1
if为判断语句,只有当条件表达式条件满足时才会执行。
如:
class AB
{
public static void main(String[] args)
{
  int x=1;
  if(x>2)
  {
   System.out.println("yes");
   
  }
   System.out.println("no");
}
}  
当if中的条件满足时输出yes,如果不满足则输出no,换成if else则为
class AB
{
public static void main(String[] args)
{
  int x=1;
  if(x>2)
  {
   System.out.println("yes");
   
  }
  else
  {
   System.out.println("no");
  }
}
}  
if else 结构简写格式为 变量=(条件表达式)?表达式1:表达式2;也称为三元运算符,三元运算符的好处是可以简化if else代码,弊端:因为是一个运算符所以运算完必须要有一个结果。
还有一种是
if(判断条件1){执行语句1}
else if (判断条件2){执行语句2}
else if (判断条件3){执行语句3}
else if (...) {...}
else{执行语句n}
例如:根据用户定义的数值不同,打印对应的星期英文。
class AB
{
public static void main(String[] args)
{
  int x=2;
  if (x==1)
   System.out.println(x+"星期一");
  else if (x==2)
   System.out.println(x+"星期二");
  else if (x==3)
   System.out.println(x+"星期三");
  else if (x==4)
   System.out.println(x+"星期四");
  else if (x==5)
   System.out.println(x+"星期五");
  else if (x==6)
   System.out.println(x+"星期六");
  else if (x==7)
   System.out.println(x+"星期天");
  else
   System.out.println(x+"不存在");
}
}
作者: ★魔_➩τ咒    时间: 2014-5-26 03:55
视频里都有的亲!
作者: EDDY_Liang    时间: 2014-5-26 09:52
彭飞 发表于 2014-5-24 23:41
楼主现在的阶段,
记住:

这也是我想说的。。。当需要用到循环语句时,如果参数变量不确定会导致循环次数也不确定,那就必须要用while语句,而当循环次数一定的时候,用for,while也能用,就是代码得敲的比for语句多
不知道我说的对不对
作者: 无所谓啦    时间: 2014-6-19 10:59
认真看视频  会有收获!
作者: 静水流华    时间: 2014-8-31 20:53
这样也可以得到技术分?
作者: 段sir!    时间: 2014-9-14 23:24
for是有能计算具体次数的循环,while是次数不确定的,像吃葡萄,不确定吃多少次,就用while,确定的用for,当然它们俩个是可以等价替换的
作者: pj1988    时间: 2015-1-5 23:27
循环次数确定时用for,循环次数不确定时用while。
作者: 王者之风西昆仑    时间: 2015-1-7 13:13
136616244 发表于 2014-5-24 18:22
今天刚看到以前不知道的一点,while的执行体和跌代体在一起,如果执行体后面加上continue 后面的跌代体执行 ...

哦,原来如此啊
作者: pj1988    时间: 2015-1-15 11:16
简单2句话,循环次数确定用for,不确定用while
作者: welfsen    时间: 2015-3-13 21:03
for循环适用于已知循环次数,while循环适用于未知循环次数,
作者: 728121881    时间: 2015-3-29 10:27
好。厉害加油啊。。。
作者: 阿七    时间: 2015-4-7 18:30
假如需要定义变量控制循环次数。建议使用for。变量只在for语句内作用,for循环完毕,变量在内存中释放。
作者: jipeng    时间: 2015-4-11 21:58
如果循环次数不明确 建议用while,如果循环次数明确,用for
作者: 城北一直晴。    时间: 2015-5-18 20:24
怎么复制链接打不开?
作者: John_Lee    时间: 2015-6-25 06:52
为什么打不开复制链接啊。。。。求解。。。。。
作者: 逸舟213    时间: 2015-7-7 10:09
for循环又称(计数器式循环)也就是说for循环大都是应用于明确循环次数这样的循环,while(当型循环)是不定次数循环,用在循环次数不确定的情况下,正常情况下这两种情况下是可以互换,for循环更节省内存,相对来更简洁!
作者: leiothrixs    时间: 2016-3-17 18:39
如果想在循环结束后,还继续使用控制条件的那个变量,还用while循环,不然就用for循环。不知道用谁的话就用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
作者: 820306455    时间: 2016-4-4 20:41
for循环因为实在循环内定义变量,循环结束,变量就释放了.循环结束变量就不能使用了.while循环变量定义在循环外,循环结束后,还可以继续调用变量.两者可以互换.但是自己觉得应该还是for循环用的比较多.
作者: 820306455    时间: 2016-4-8 20:00
基本没区别,可以互换。for循环变量定义在方法中,能更节省内存。while循环变量自循环体外,循环结束后可以继续操作变量
作者: fanhongwei1105    时间: 2016-5-23 23:53
为什么打不开复制链接啊。。。。求解。。。。
作者: HeiMa2Wangkunpe    时间: 2016-7-23 00:35
for循环一般指循环次数已知的,在一定范围之内,而while循环不知道循环次数




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