黑马程序员技术交流社区

标题: 关于循环问题 [打印本页]

作者: luheqi    时间: 2014-6-30 19:50
标题: 关于循环问题
循环控制语句主要有while语句、 for语句。但是大家有没有想过while语句能实现的语句,for一定也能实现,为什么还保留while语句呢?
是不是还有某些情形是for语句不能实现的?请各位指教。

作者: ソi苆僞lè袮    时间: 2014-6-30 20:23
明确知道循环次数的时候可以使用for循环,比如说遍历数组中的元素
while循环多用于逻辑判断,用在循环次数不明确的时候。
作者: luheqi    时间: 2014-6-30 20:42
ソi苆僞lè袮 发表于 2014-6-30 20:23
明确知道循环次数的时候可以使用for循环,比如说遍历数组中的元素
while循环多用于逻辑判断,用在循环次数 ...

请举一个不能用for而只能用while的反例。
作者: fantacyleo    时间: 2014-6-30 21:24
luheqi 发表于 2014-6-30 20:42
请举一个不能用for而只能用while的反例。

for的循环变量更新表达式是写死的,没法改。随便想了个例子,for循环应该是做不到的,但不一定有实际用
  1. // 下面假定数组a是一个含有100个元素的int数组
  2. int i = 0, sum = 0;
  3. while(i < 100)
  4. {
  5.     sum += a[i];
  6.     if(sum > 30)
  7.         i += 2;
  8.     else
  9.         i++;
  10. }
复制代码

作者: ソi苆僞lè袮    时间: 2014-6-30 21:41
luheqi 发表于 2014-6-30 20:42
请举一个不能用for而只能用while的反例。

这个。。。比如在连接数据库的时候,并不知道数据库中有多少条数据

            
就用while(rs.next()){   ....
        }
作者: 非5莫属    时间: 2014-6-30 23:06
for循环里一般涉及的是局部变量;while循环里一般涉及的是全局变量。
作者: luheqi    时间: 2014-6-30 23:08
ソi苆僞lè袮 发表于 2014-6-30 21:41
这个。。。比如在连接数据库的时候,并不知道数据库中有多少条数据

            

for(  ; rs.next();   ){...
}  可以代替吧
作者: ソi苆僞lè袮    时间: 2014-7-1 00:01
luheqi 发表于 2014-6-30 23:08
for(  ; rs.next();   ){...
}  可以代替吧

是哦,又学了一招:lol知识有限,只能想到这里了
作者: tangliping    时间: 2014-7-1 00:45
for一般用于循环次数确定的循环,while则用于逻辑判断的循环,一般循环次数是不知道的




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